minecraftconsoles-lce by aradotso/trending-skills
npx skills add https://github.com/aradotso/trending-skills --skill minecraftconsoles-lce技能由 ara.so 提供 — Daily 2026 技能集合。
MinecraftConsoles 是 Minecraft 旧版主机版 v1.6.0560.0 (TU19) 的 C++ 重新实现/延续项目,目标平台为现代 Windows(以及通过 Wine 非官方支持的 macOS/Linux)。目标包括:
代码仓库: smartcmd/MinecraftConsoles
主要语言: C++
构建系统: Visual Studio 2022 解决方案 (.sln) + CMake 支持
git clone https://github.com/smartcmd/MinecraftConsoles.git
cd MinecraftConsoles
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
MinecraftConsoles.slnMinecraft.Client# 配置
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
# 构建客户端
cmake --build build --config Debug --target MinecraftClient
# 构建专用服务器
cmake --build build --config Debug --target MinecraftServer
更多特定平台的说明请参阅仓库中的 COMPILE.md。
从 Nightly Release 下载 .zip 文件,解压后运行 Minecraft.Client.exe。
在与可执行文件相同的目录下创建 username.txt 文件:
Steve
或者使用启动参数:
Minecraft.Client.exe -name Steve
Minecraft.Client.exe -name Steve -fullscreen
| 参数 | 描述 |
|---|---|
-name <用户名> | 覆盖游戏内用户名 |
-fullscreen | 以全屏模式启动 |
| 操作 | 按键/按钮 |
|---|---|
| 移动 | W A S D |
| 跳跃 / 向上飞 | 空格键 |
| 潜行 / 向下飞 | Shift(按住) |
| 疾跑 | Ctrl(按住)或双击 W |
| 物品栏 | E |
| 聊天 | T |
| 丢弃物品 | Q |
| 合成 | C(标签页切换:Q / E) |
| 攻击 / 破坏 | 鼠标左键 |
| 使用 / 放置 | 鼠标右键 |
| 选择快捷栏槽位 | 1–9 或鼠标滚轮 |
| 暂停 | Esc |
| 全屏切换 | F11 |
| 切换 HUD | F1 |
| 切换调试信息 | F3 |
| 调试叠加层 | F4 |
| 切换调试控制台 | F6 |
| 切换 FPS/TPS 显示 | F5 |
| 玩家列表 / 主机选项 | Tab |
| 接受教程提示 | Enter |
| 拒绝教程提示 | B |
Windows 版本上的局域网多人游戏会自动运行:
uid.dat 可在重命名后保持你的数据Minecraft.Server.exe -name MyServer -port 25565 -ip 0.0.0.0 -maxplayers 8 -loglevel info
Minecraft.Server.exe -seed 123456789
| 参数 | 描述 |
|---|---|
-port <1-65535> | 覆盖 server-port |
-ip <地址> | 覆盖 server-ip(绑定地址) |
-bind <地址> | -ip 的别名 |
-name <名称> | 覆盖 server-name(最多 16 个字符) |
-maxplayers <1-8> | 覆盖 max-players |
-seed <int64> | 覆盖 level-seed |
-loglevel <级别> | debug、info、warn、error |
-help / --help / -h | 打印用法并退出 |
server.properties 配置位于 Minecraft.Server.exe 所在目录。如果缺失,会自动生成默认配置。
server-name=DedicatedServer
server-port=25565
server-ip=0.0.0.0
max-players=8
level-name=world
level-id=world
level-seed=
world-size=classic
log-level=info
white-list=false
lan-advertise=false
autosave-interval=60
关键属性说明:
| 键 | 值 | 默认值 | 说明 |
|---|---|---|---|
server-port | 1–65535 | 25565 | TCP 监听端口 |
server-ip | 字符串 | 0.0.0.0 | 绑定地址 |
server-name | 字符串 | DedicatedServer | 最多 16 个字符 |
max-players | 1–8 | 8 | 玩家槽位 |
level-seed | int64 或空 | 空 | 空 = 随机 |
world-size | `classic | small | medium |
log-level | `debug | info | warn |
autosave-interval | 5–3600 | 60 | 自动保存间隔秒数 |
white-list | true/false | false | 启用白名单 |
lan-advertise | true/false | false | 局域网广播 |
# 启动(自动拉取最新镜像)
./start-dedicated-server.sh
# 启动但不拉取
./start-dedicated-server.sh --no-pull
# 等效的手动命令
docker compose -f docker-compose.dedicated-server.ghcr.yml up -d
需要本地编译的 Minecraft.Server.exe:
docker compose -f docker-compose.dedicated-server.yml up -d --build
| 主机路径 | 容器路径 | 用途 |
|---|---|---|
./server-data/server.properties | /srv/mc/server.properties | 服务器配置 |
./server-data/GameHDD | /srv/mc/Windows64/GameHDD | 世界保存数据 |
| 变量 | 默认值 | 描述 |
|---|---|---|
XVFB_DISPLAY | :99 | 虚拟显示器编号 |
XVFB_SCREEN | 64x64x16 | 虚拟屏幕尺寸(很小,Wine 需要) |
MinecraftConsoles/
├── MinecraftConsoles.sln # Visual Studio 解决方案
├── CMakeLists.txt # CMake 构建定义
├── COMPILE.md # 详细的编译说明
├── CONTRIBUTING.md # 贡献者指南和项目目标
├── docker-compose.dedicated-server.ghcr.yml # Docker(GHCR 镜像)
├── docker-compose.dedicated-server.yml # Docker(本地构建)
├── start-dedicated-server.sh # 快速启动脚本
├── server-data/
│ ├── server.properties # 服务器配置(自动生成)
│ └── GameHDD/ # 世界保存数据
└── .github/
└── banner.png
该项目在原始仅支持手柄的代码基础上添加了键盘/鼠标支持。扩展输入时:
// 在输入处理器中检查按键状态的典型模式
// 找到键盘输入处理文件并添加你的按键检查:
bool isKeyPressed(int virtualKey) {
return (GetAsyncKeyState(virtualKey) & 0x8000) != 0;
}
// 示例:添加一个新的切换键
if (isKeyPressed(VK_F7)) {
// 切换你的功能
myFeatureEnabled = !myFeatureEnabled;
}
遵循现有的 -name / -fullscreen 模式:
// 在参数解析部分(通常在 main 或 init 中):
for (int i = 1; i < argc; i++) {
std::string arg = argv[i];
if (arg == "-name" && i + 1 < argc) {
username = argv[++i];
}
else if (arg == "-fullscreen") {
launchFullscreen = true;
}
// 添加你的参数:
else if (arg == "-myoption" && i + 1 < argc) {
myOption = argv[++i];
}
}
server.properties#include <fstream>
#include <sstream>
#include <map>
#include <string>
std::map<std::string, std::string> loadServerProperties(const std::string& path) {
std::map<std::string, std::string> props;
std::ifstream file(path);
std::string line;
while (std::getline(file, line)) {
if (line.empty() || line[0] == '#') continue;
auto eq = line.find('=');
if (eq == std::string::npos) continue;
std::string key = line.substr(0, eq);
std::string val = line.substr(eq + 1);
props[key] = val;
}
return props;
}
// 用法:
auto props = loadServerProperties("server.properties");
int port = std::stoi(props.count("server-port") ? props["server-port"] : "25565");
std::string serverName = props.count("server-name") ? props["server-name"] : "DedicatedServer";
server.properties(规范化 / 自动生成)void writeServerProperties(const std::string& path,
const std::map<std::string, std::string>& props) {
std::ofstream file(path);
for (auto& [key, val] : props) {
file << key << "=" << val << "\n";
}
}
// 从 level-name 规范化 level-id
std::string normalizeLevelId(const std::string& levelName) {
std::string id = levelName;
// 移除不安全字符,转为小写,将空格替换为下划线
for (char& c : id) {
if (!std::isalnum(c) && c != '_' && c != '-') c = '_';
}
return id;
}
# 确认已安装 VS 2022,然后:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
# "17 2022" 是 VS 2022 的生成器名称
lan-advertise=true 对于专用服务器不是必需的(它用于局域网广播;客户端通过加入游戏菜单发现)XVFB_DISPLAY 环境变量必须与 Wine 使用的匹配64x64x16 虚拟帧缓冲区 — 除非有理由,否则不要更改uid.dat — 它存储你唯一的玩家 ID-name 或 username.txt 重命名自己,你现有的 uid.dat 会保持世界数据与你的账户关联.zipwine Minecraft.Client.exe 或 CrossOver 运行提交 PR 前请阅读 CONTRIBUTING.md。要点:
| 平台 | 状态 |
|---|---|
| Windows (VS 2022) | ✅ 完全支持 |
| macOS / Linux (Wine) | ⚠️ 社区报告可用,非官方 |
| Android (Wine) | ⚠️ 可运行,存在帧时间问题 |
| iOS | ❌ 不支持 |
| 游戏主机 | ⚠️ 代码存在,未积极维护 |
每周安装数
293
代码仓库
GitHub Stars
10
首次出现
7 天前
安全审计
安装于
gemini-cli292
github-copilot292
codex292
amp292
cline292
kimi-cli292
Skill by ara.so — Daily 2026 Skills collection.
MinecraftConsoles is a C++ reimplementation/continuation of Minecraft Legacy Console Edition v1.6.0560.0 (TU19) , targeting modern Windows (and unofficially macOS/Linux via Wine). Goals include:
Repository: smartcmd/MinecraftConsoles
Primary language: C++
Build system: Visual Studio 2022 solution (.sln) + CMake support
git clone https://github.com/smartcmd/MinecraftConsoles.git
cd MinecraftConsoles
MinecraftConsoles.sln in Visual Studio 2022Minecraft.Client# Configure
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
# Build the client
cmake --build build --config Debug --target MinecraftClient
# Build the dedicated server
cmake --build build --config Debug --target MinecraftServer
See COMPILE.md in the repo for additional platform-specific notes.
Download the .zip from the Nightly Release, extract, and run Minecraft.Client.exe.
Create username.txt in the same directory as the executable:
Steve
Or use a launch argument:
Minecraft.Client.exe -name Steve
Minecraft.Client.exe -name Steve -fullscreen
| Argument | Description |
|---|---|
-name <username> | Override in-game username |
-fullscreen | Launch in fullscreen mode |
| Action | Key/Button |
|---|---|
| Move | W A S D |
| Jump / Fly Up | Space |
| Sneak / Fly Down | Shift (hold) |
| Sprint | Ctrl (hold) or double-tap W |
LAN multiplayer works automatically on the Windows build:
uid.dat to preserve your data across renamesMinecraft.Server.exe -name MyServer -port 25565 -ip 0.0.0.0 -maxplayers 8 -loglevel info
Minecraft.Server.exe -seed 123456789
| Argument | Description |
|---|---|
-port <1-65535> | Override server-port |
-ip <addr> | Override server-ip (bind address) |
-bind <addr> | Alias of -ip |
-name <name> | Override server-name (max 16 chars) |
server.properties ConfigurationLocated in the same directory as Minecraft.Server.exe. Auto-generated with defaults if missing.
server-name=DedicatedServer
server-port=25565
server-ip=0.0.0.0
max-players=8
level-name=world
level-id=world
level-seed=
world-size=classic
log-level=info
white-list=false
lan-advertise=false
autosave-interval=60
Key property notes:
| Key | Values | Default | Notes |
|---|---|---|---|
server-port | 1–65535 | 25565 | TCP listen port |
server-ip | string | 0.0.0.0 | Bind address |
server-name | string | DedicatedServer |
# Start (pulls latest image automatically)
./start-dedicated-server.sh
# Start without pulling
./start-dedicated-server.sh --no-pull
# Equivalent manual command
docker compose -f docker-compose.dedicated-server.ghcr.yml up -d
Requires a locally compiled Minecraft.Server.exe:
docker compose -f docker-compose.dedicated-server.yml up -d --build
| Host Path | Container Path | Purpose |
|---|---|---|
./server-data/server.properties | /srv/mc/server.properties | Server config |
./server-data/GameHDD | /srv/mc/Windows64/GameHDD | World save data |
| Variable | Default | Description |
|---|---|---|
XVFB_DISPLAY | :99 | Virtual display number |
XVFB_SCREEN | 64x64x16 | Virtual screen size (tiny, Wine needs it) |
MinecraftConsoles/
├── MinecraftConsoles.sln # Visual Studio solution
├── CMakeLists.txt # CMake build definition
├── COMPILE.md # Detailed compile instructions
├── CONTRIBUTING.md # Contributor guide and project goals
├── docker-compose.dedicated-server.ghcr.yml # Docker (GHCR image)
├── docker-compose.dedicated-server.yml # Docker (local build)
├── start-dedicated-server.sh # Quick-start script
├── server-data/
│ ├── server.properties # Server config (auto-generated)
│ └── GameHDD/ # World save data
└── .github/
└── banner.png
The project added keyboard/mouse support on top of the original controller-only code. When extending input:
// Typical pattern for checking key state in the input handler
// Find the keyboard input processing file and add your key check:
bool isKeyPressed(int virtualKey) {
return (GetAsyncKeyState(virtualKey) & 0x8000) != 0;
}
// Example: adding a new toggle key
if (isKeyPressed(VK_F7)) {
// toggle your feature
myFeatureEnabled = !myFeatureEnabled;
}
Follow the existing -name / -fullscreen pattern:
// In the argument parsing section (typically in main or init):
for (int i = 1; i < argc; i++) {
std::string arg = argv[i];
if (arg == "-name" && i + 1 < argc) {
username = argv[++i];
}
else if (arg == "-fullscreen") {
launchFullscreen = true;
}
// Add your argument:
else if (arg == "-myoption" && i + 1 < argc) {
myOption = argv[++i];
}
}
server.properties#include <fstream>
#include <sstream>
#include <map>
#include <string>
std::map<std::string, std::string> loadServerProperties(const std::string& path) {
std::map<std::string, std::string> props;
std::ifstream file(path);
std::string line;
while (std::getline(file, line)) {
if (line.empty() || line[0] == '#') continue;
auto eq = line.find('=');
if (eq == std::string::npos) continue;
std::string key = line.substr(0, eq);
std::string val = line.substr(eq + 1);
props[key] = val;
}
return props;
}
// Usage:
auto props = loadServerProperties("server.properties");
int port = std::stoi(props.count("server-port") ? props["server-port"] : "25565");
std::string serverName = props.count("server-name") ? props["server-name"] : "DedicatedServer";
server.properties (Normalize / Auto-generate)void writeServerProperties(const std::string& path,
const std::map<std::string, std::string>& props) {
std::ofstream file(path);
for (auto& [key, val] : props) {
file << key << "=" << val << "\n";
}
}
// Normalize level-id from level-name
std::string normalizeLevelId(const std::string& levelName) {
std::string id = levelName;
// Remove unsafe characters, lowercase, replace spaces with underscores
for (char& c : id) {
if (!std::isalnum(c) && c != '_' && c != '-') c = '_';
}
return id;
}
# Confirm VS 2022 is installed, then:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
# "17 2022" is the generator name for VS 2022
lan-advertise=true is NOT required for dedicated servers (it's for LAN broadcast; clients discover via Join Game)XVFB_DISPLAY env var must match what Wine uses64x64x16 virtual framebuffer — don't change this unless you have a reasonuid.dat — it stores your unique player ID-name or username.txt, your existing uid.dat keeps world data linked to your account.zipwine Minecraft.Client.exe or CrossOverRead CONTRIBUTING.md before submitting PRs. Key points:
| Platform | Status |
|---|---|
| Windows (VS 2022) | ✅ Fully supported |
| macOS / Linux (Wine) | ⚠️ Community-reported working, unofficial |
| Android (Wine) | ⚠️ Runs with frametime issues |
| iOS | ❌ No support |
| Consoles | ⚠️ Code present, not actively maintained |
Weekly Installs
293
Repository
GitHub Stars
10
First Seen
7 days ago
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
gemini-cli292
github-copilot292
codex292
amp292
cline292
kimi-cli292
freeCodeCamp 开源课程平台开发指南 - React/TypeScript 前端与 Node.js/Fastify 后端架构
501 周安装
| Inventory | E |
| Chat | T |
| Drop Item | Q |
| Crafting | C (tabs: Q / E) |
| Attack / Destroy | Left Click |
| Use / Place | Right Click |
| Select hotbar slot | 1–9 or Mouse Wheel |
| Pause | Esc |
| Fullscreen | F11 |
| Toggle HUD | F1 |
| Toggle Debug Info | F3 |
| Debug Overlay | F4 |
| Toggle Debug Console | F6 |
| Toggle FPS/TPS view | F5 |
| Player list / Host Options | Tab |
| Accept tutorial hint | Enter |
| Decline tutorial hint | B |
-maxplayers <1-8> | Override max-players |
-seed <int64> | Override level-seed |
-loglevel <level> | debug, info, warn, error |
-help / --help / -h | Print usage and exit |
| Max 16 chars |
max-players | 1–8 | 8 | Player slots |
level-seed | int64 or empty | empty | Empty = random |
world-size | `classic | small | medium |
log-level | `debug | info | warn |
autosave-interval | 5–3600 | 60 | Seconds between autosaves |
white-list | true/false | false | Enable whitelist |
lan-advertise | true/false | false | LAN advertisement |