初始化 monorepo: Go后端(7微服务) + Unity客户端(9模块) + 启动器 HTML5原型: Three.js 3D体素世界, Perlin噪声地形, 原版材质, 22种方块 Minecraft创造模式背包: 双栏布局, 拖拽移动物品, 方向性元件引脚 AI助搭策划文档 + 客户端/服务端骨架 + Docker Compose + CI
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
using System.Windows;
|
||||
using PCL.Core.Utils.Validate;
|
||||
using PCL.Core.App.Localization;
|
||||
|
||||
namespace PCL;
|
||||
|
||||
public partial class PageLoginOffline
|
||||
{
|
||||
public PageLoginOffline()
|
||||
{
|
||||
// Handles
|
||||
InitializeComponent();
|
||||
BtnBack.Click += BtnBack_Click;
|
||||
RadioUuidCustom.Check += RadioUuid_Checked;
|
||||
RadioUuidStandard.Check += RadioUuid_Checked;
|
||||
RadioUuidLegacy.Check += RadioUuid_Checked;
|
||||
BtnLogin.Click += BtnLogin_Click;
|
||||
}
|
||||
|
||||
private void BtnBack_Click(object sender, EventArgs e)
|
||||
{
|
||||
ModBase.RunInUi(() => ModMain.frmLaunchLeft.RefreshPage(true));
|
||||
}
|
||||
|
||||
private void RadioUuid_Checked(object sender, ModBase.RouteEventArgs e)
|
||||
{
|
||||
if (RadioUuidCustom.Checked)
|
||||
{
|
||||
TextUuidTitle.Visibility = Visibility.Visible;
|
||||
TextUuid.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
TextUuidTitle.Visibility = Visibility.Collapsed;
|
||||
TextUuid.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
}
|
||||
|
||||
private void BtnLogin_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 玩家 ID 输入检查
|
||||
var username = TextName.Text;
|
||||
var usernameValidateResult = new RegexValidator("^[A-z0-9_]{3,16}$").Validate(username);
|
||||
if (!usernameValidateResult.IsValid)
|
||||
if (ModMain.MyMsgBox(
|
||||
Lang.Text("Launch.Account.Offline.InvalidPlayerId.Message"),
|
||||
Lang.Text("Launch.Account.Offline.InvalidPlayerId.Title"), Lang.Text("Common.Action.Continue"), Lang.Text("Common.Action.Cancel"), isWarn: true, forceWait: true) == 2)
|
||||
return;
|
||||
// UUID
|
||||
string userUuid = null;
|
||||
if (RadioUuidCustom.Checked)
|
||||
{
|
||||
// 自定义输入检查
|
||||
var uuidInput = TextUuid.Text.Replace("-", "");
|
||||
var uuidValidateResult = new RegexValidator("^[a-fA-F0-9]{32}$").Validate(uuidInput);
|
||||
if (RadioUuidCustom.Checked && !uuidValidateResult.IsValid)
|
||||
{
|
||||
HintService.Hint(Lang.Text("Launch.Account.Offline.InvalidUuid", uuidValidateResult), HintType.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
userUuid = uuidInput;
|
||||
}
|
||||
else if (RadioUuidLegacy.Checked)
|
||||
{
|
||||
userUuid = ModProfile.GetOfflineUuid(username, isLegacy: true);
|
||||
}
|
||||
else
|
||||
{
|
||||
userUuid = ModProfile.GetOfflineUuid(username);
|
||||
}
|
||||
|
||||
// 创建档案
|
||||
var newProfile = new ModProfile.McProfile
|
||||
{
|
||||
Type = ModLaunch.McLoginType.Legacy,
|
||||
Uuid = userUuid,
|
||||
Username = username,
|
||||
Desc = ""
|
||||
};
|
||||
ModProfile.profileList.Add(newProfile);
|
||||
ModProfile.SaveProfile();
|
||||
ModProfile.selectedProfile = newProfile;
|
||||
ModProfile.isCreatingProfile = false;
|
||||
HintService.Hint(Lang.Text("Launch.Account.Profile.Created"), HintType.Success);
|
||||
ModBase.RunInUi(() => ModMain.frmLaunchLeft.RefreshPage(true));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user