| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596 |
- #include "Win32.h"
- #include "ID.h"
- #include "Function.h"
- #include "SharedValue.h"
- HFONT Font();
- LRESULT CALLBACK StartProc(HWND hWnd1, UINT msg, WPARAM wParam, LPARAM lParam)
- {
- switch (msg)
- {
- case WM_DESTROY:
- hStart = NULL;
- break;
- default:
- return DefWindowProc(hWnd1, msg, wParam, lParam);
- }
- return 0;
- }
- LRESULT CALLBACK WeatherProc(HWND hWnd1, UINT msg, WPARAM wParam, LPARAM lParam) {
- switch (msg) {
- case WM_CREATE:
- {
- HFONT hFont1 = Font();
- HWND hWeaSet = CreateWindow(
- L"BUTTON", L"基础选项",
- WS_VISIBLE | WS_CHILD | BS_GROUPBOX,
- 20, 20, 330, 100,
- hWnd1, NULL,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hWeaSet_1 = CreateWindow(
- L"BUTTON", L"晴天",
- WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | WS_GROUP,
- 40, 55, 80, 40,
- hWnd1, (HMENU)ID_FC_Wea_SET_1,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hWeaSet_2 = CreateWindow(
- L"BUTTON", L"雨天",
- WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
- 140, 55, 80, 40,
- hWnd1, (HMENU)ID_FC_Wea_SET_2,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hWeaSet_3 = CreateWindow(
- L"BUTTON", L"雷暴",
- WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
- 240, 55, 80, 40,
- hWnd1, (HMENU)ID_FC_Wea_SET_3,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hLabel_Wea_1 = CreateWindow(
- L"STATIC", L"高级选项",
- WS_VISIBLE | WS_CHILD,
- 30, 150, 80, 30,
- hWnd1, NULL,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hWeaAdv = CreateWindow(
- L"BUTTON", L"天气更替",
- WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
- 30, 190, 110, 40,
- hWnd1, (HMENU)ID_FC_Wea_ADV,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hWeaOK = CreateWindow(
- L"BUTTON", L"提交",
- WS_VISIBLE | WS_CHILD,
- 250, 250, 110, 40,
- hWnd1, (HMENU)ID_FC_Wea_OK,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- SendMessage(hWeaSet_1, BM_SETCHECK, BST_CHECKED, 0);
- SendMessage(hWeaAdv, BM_SETCHECK, BST_CHECKED, 0);
- }
- break;
- case WM_COMMAND:
- {
- WORD wmId = LOWORD(wParam);
- switch (wmId)
- {
- case ID_FC_Wea_OK:
- if (IsDlgButtonChecked(hWnd1, ID_FC_Wea_ADV) == BST_CHECKED)
- SendCommand(C("gamerule doWeatherCycle true"));
- else SendCommand(C("gamerule doWeatherCycle false"));
- if (IsDlgButtonChecked(hWnd1, ID_FC_Wea_SET_1) == BST_CHECKED)
- SendCommand(C("weather clear"));
- else if (IsDlgButtonChecked(hWnd1, ID_FC_Wea_SET_2) == BST_CHECKED)
- SendCommand(C("weather rain"));
- else SendCommand(C("weather thunder"));
- DestroyWindow(hWnd1);
- break;
- default:
- break;
- }
- break;
- }
- case WM_CLOSE:
- DestroyWindow(hWnd1);
- break;
- case WM_DESTROY:
- hWeather = NULL;
- break;
- default:
- return DefWindowProc(hWnd1, msg, wParam, lParam);
- }
- return 0;
- }
- LRESULT CALLBACK TimeProc(HWND hWnd1, UINT msg, WPARAM wParam, LPARAM lParam) {
- switch (msg) {
- case WM_CREATE:
- {
- HFONT hFont1 = Font();
- HWND hWeaSet = CreateWindow(
- L"BUTTON", L"快速设定",
- WS_VISIBLE | WS_CHILD | BS_GROUPBOX,
- 20, 20, 330, 150,
- hWnd1, NULL,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hTimeSet_1 = CreateWindow(
- L"BUTTON", L"日出",
- WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | WS_GROUP,
- 40, 55, 80, 40,
- hWnd1, (HMENU)ID_FC_Time_SET_1,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hTimeSet_2 = CreateWindow(
- L"BUTTON", L"白日",
- WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
- 140, 55, 80, 40,
- hWnd1, (HMENU)ID_FC_Time_SET_2,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hTimeSet_3 = CreateWindow(
- L"BUTTON", L"正午",
- WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
- 240, 55, 80, 40,
- hWnd1, (HMENU)ID_FC_Time_SET_3,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hTimeSet_4 = CreateWindow(
- L"BUTTON", L"日落",
- WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
- 40, 115, 80, 40,
- hWnd1, (HMENU)ID_FC_Time_SET_4,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hTimeSet_5 = CreateWindow(
- L"BUTTON", L"夜晚",
- WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
- 140, 115, 80, 40,
- hWnd1, (HMENU)ID_FC_Time_SET_5,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hTimeSet_6 = CreateWindow(
- L"BUTTON", L"午夜",
- WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON,
- 240, 115, 80, 40,
- hWnd1, (HMENU)ID_FC_Time_SET_6,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hLabel_Wea_1 = CreateWindow(
- L"STATIC", L"高级选项",
- WS_VISIBLE | WS_CHILD,
- 30, 210, 80, 30,
- hWnd1, NULL,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hTimeAdv = CreateWindow(
- L"BUTTON", L"时间更替",
- WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
- 30, 250, 110, 40,
- hWnd1, (HMENU)ID_FC_Time_ADV,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hWeaOK = CreateWindow(
- L"BUTTON", L"提交",
- WS_VISIBLE | WS_CHILD,
- 250, 300, 110, 40,
- hWnd1, (HMENU)ID_FC_Time_OK,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- SendMessage(hTimeSet_3, BM_SETCHECK, BST_CHECKED, 0);
- SendMessage(hTimeAdv, BM_SETCHECK, BST_CHECKED, 0);
- }
- break;
- case WM_COMMAND:
- {
- WORD wmId = LOWORD(wParam);
- switch (wmId)
- {
- case ID_FC_Time_OK:
- if (IsDlgButtonChecked(hWnd1, ID_FC_Time_ADV) == BST_CHECKED)
- SendCommand(C("gamerule doDaylightCycle true"));
- else SendCommand(C("gamerule doDaylightCycle false"));
- if (IsDlgButtonChecked(hWnd1, ID_FC_Wea_SET_1) == BST_CHECKED)
- SendCommand(C("time set sunrise"));
- else if (IsDlgButtonChecked(hWnd1, ID_FC_Time_SET_2) == BST_CHECKED)
- SendCommand(C("time set day"));
- else if (IsDlgButtonChecked(hWnd1, ID_FC_Time_SET_3) == BST_CHECKED)
- SendCommand(C("time set noon"));
- else if (IsDlgButtonChecked(hWnd1, ID_FC_Time_SET_4) == BST_CHECKED)
- SendCommand(C("time set sunset"));
- else if (IsDlgButtonChecked(hWnd1, ID_FC_Time_SET_5) == BST_CHECKED)
- SendCommand(C("time set night"));
- else SendCommand(C("time set midnight"));
- DestroyWindow(hWnd1);
- break;
- default:
- break;
- }
- break;
- }
- case WM_CLOSE:
- DestroyWindow(hWnd1);
- break;
- case WM_DESTROY:
- hTime = NULL;
- break;
- default:
- return DefWindowProc(hWnd1, msg, wParam, lParam);
- }
- return 0;
- return 0;
- }
- LRESULT CALLBACK LogProc(HWND hWnd1, UINT msg, WPARAM wParam, LPARAM lParam)
- {
- switch (msg) {
- case WM_CREATE:
- {
- SetTimer(hWnd1, 1, 100, NULL);
- HFONT hFont1 = Font();
- HWND hLog = CreateWindow(
- L"EDIT", L"Null",
- WS_VISIBLE | WS_CHILD | WS_BORDER | WS_VSCROLL | ES_MULTILINE | ES_READONLY | ES_AUTOVSCROLL,
- 30, 30, 910, 510,
- hWnd1, (HMENU)ID_LOG,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hLogClear = CreateWindow(
- L"BUTTON", L"清除日志",
- WS_VISIBLE | WS_CHILD,
- 790, 570, 110, 40,
- hWnd1, (HMENU)ID_LOG_CLEAR,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- break;
- }
- case WM_COMMAND:
- {
- WORD wmId = LOWORD(wParam);
- switch (wmId)
- {
- case ID_LOG_CLEAR:
- if (MessageBox(hWnd1,
- L"是否要清除所有日志?", TITLE,
- MB_OKCANCEL | MB_APPLMODAL | MB_ICONQUESTION)
- == IDOK)
- {
- ClearLog();
- SetWindowText(GetDlgItem(hWnd1, ID_LOG), _T("Null"));
- }
- break;
- default:
- break;
- }
- break;
- }
- case WM_TIMER:
- Log(GetDlgItem(hLog, ID_LOG));
- break;
- case WM_CLOSE:
- break;
- case WM_DESTROY:
- KillTimer(hWnd1, 1);
- hLog = NULL;
- break;
- default:
- return DefWindowProc(hWnd1, msg, wParam, lParam);
- }
- return 0;
- }
- LRESULT CALLBACK PlayerProc(HWND hWnd1, UINT msg, WPARAM wParam, LPARAM lParam) {
- switch (msg) {
- case WM_CREATE:
- {
- HFONT hFont1 = Font();
- HWND hLabel_1 = CreateWindow(
- L"STATIC", L"操作类型",
- WS_VISIBLE | WS_CHILD,
- 20, 20, 100, 30,
- hWnd1, NULL,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hCmdType = CreateWindow(
- L"COMBOBOX", NULL,
- WS_VISIBLE | WS_CHILD | CBS_DROPDOWNLIST,
- 130, 20, 200, 160,
- hWnd1, (HMENU)ID_FC_Player_TYPE,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- SendMessage(hCmdType, CB_ADDSTRING, 0, (LPARAM)L"踢出服务器");
- SendMessage(hCmdType, CB_ADDSTRING, 0, (LPARAM)L"赋予管理员权限");
- SendMessage(hCmdType, CB_ADDSTRING, 0, (LPARAM)L"撤销管理员权限");
- SendMessage(hCmdType, CB_ADDSTRING, 0, (LPARAM)L"更改游戏模式");
- SendMessage(hCmdType, CB_ADDSTRING, 0, (LPARAM)L"使玩家失败");
- SendMessage(hCmdType, CB_ADDSTRING, 0, (LPARAM)L"发送私密消息");
- HWND hLabel_2 = CreateWindow(
- L"STATIC", L"玩家ID",
- WS_VISIBLE | WS_CHILD,
- 20, 70, 60, 30,
- hWnd1, NULL,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hPlayerSelect = CreateWindow(
- L"EDIT", NULL,
- WS_VISIBLE | WS_CHILD | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL,
- 20, 90, 310, 40,
- hWnd1, (HMENU)ID_FC_Player_LIST,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hLabel_3 = CreateWindow(
- L"STATIC", L"消息内容",
- WS_CHILD,
- 20, 150, 90, 30,
- hWnd1, (HMENU)ID_FC_Player_TEXT_s,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hText = CreateWindow(
- L"EDIT", NULL,
- WS_CHILD | WS_BORDER | ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL,
- 20, 170, 310, 90,
- hWnd1, (HMENU)ID_FC_Player_TEXT,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hLabel_4 = CreateWindow(
- L"STATIC", L"游戏模式",
- WS_CHILD,
- 20, 150, 100, 30,
- hWnd1, (HMENU)ID_FC_Player_GM_s,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hGMtype = CreateWindow(
- L"COMBOBOX", NULL,
- WS_CHILD | CBS_DROPDOWNLIST,
- 130, 150, 200, 160,
- hWnd1, (HMENU)ID_FC_Player_GM,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- SendMessage(hGMtype, CB_ADDSTRING, 0, (LPARAM)L"冒险");
- SendMessage(hGMtype, CB_ADDSTRING, 0, (LPARAM)L"生存");
- SendMessage(hGMtype, CB_ADDSTRING, 0, (LPARAM)L"创造");
- SendMessage(hGMtype, CB_ADDSTRING, 0, (LPARAM)L"旁观");
- HWND hPlayerOK = CreateWindow(
- L"BUTTON", L"提交",
- WS_VISIBLE | WS_CHILD,
- 220, 280, 110, 40,
- hWnd1, (HMENU)ID_FC_Player_OK,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- }
- break;
- case WM_COMMAND:
- {
- WORD wmId = LOWORD(wParam);
- WORD wmEvent = HIWORD(wParam);
- if (wmEvent == CBN_SELCHANGE && wmId == ID_FC_Player_TYPE)
- {
- int selected = SendMessage(GetDlgItem(hWnd1, ID_FC_Player_TYPE), CB_GETCURSEL, 0, 0);
- ShowWindow(GetDlgItem(hWnd1, ID_FC_Player_GM), SW_HIDE);
- ShowWindow(GetDlgItem(hWnd1, ID_FC_Player_TEXT), SW_HIDE);
- ShowWindow(GetDlgItem(hWnd1, ID_FC_Player_GM_s), SW_HIDE);
- ShowWindow(GetDlgItem(hWnd1, ID_FC_Player_TEXT_s), SW_HIDE);
- switch (selected)
- {
- case 3:
- ShowWindow(GetDlgItem(hWnd1, ID_FC_Player_GM), SW_SHOW);
- ShowWindow(GetDlgItem(hWnd1, ID_FC_Player_GM_s), SW_SHOW);
- break;
- case 5:
- ShowWindow(GetDlgItem(hWnd1, ID_FC_Player_TEXT), SW_SHOW);
- ShowWindow(GetDlgItem(hWnd1, ID_FC_Player_TEXT_s), SW_SHOW);
- break;
- }
- }
- switch (wmId)
- {
- case ID_FC_Player_OK:
- {
- char ID[512] = {0};
- char TEXT[2048] = { 0 };
- GetWindowTextA(GetDlgItem(hWnd1, ID_FC_Player_LIST), ID, 512);
- GetWindowTextA(GetDlgItem(hWnd1, ID_FC_Player_TEXT), TEXT, 512);
- int type = SendMessage(GetDlgItem(hWnd1, ID_FC_Player_TYPE), CB_GETCURSEL, 0, 0);
- switch (type)
- {
- case 0:
- {
- SendCommand_WithID("kick", ID, "");
- break;
- }
- case 1:
- {
- SendCommand_WithID("op", ID, "");
- break;
- }
- case 2:
- {
- SendCommand_WithID("deop", ID, "");
- break;
- }
- case 3:
- {
- int gm = SendMessage(GetDlgItem(hWnd1, ID_FC_Player_GM), CB_GETCURSEL, 0, 0);
- switch (gm)
- {
- case 0:
- {
- SendCommand_WithID("gamemode 2", ID, "");
- break;
- }
- case 1:
- {
- SendCommand_WithID("gamemode 0", ID, "");
- break;
- }
- case 2:
- {
- SendCommand_WithID("gamemode 1", ID, "");
- break;
- }
- case 3:
- {
- SendCommand_WithID("gamemode 3", ID, "");
- break;
- }
- default:
- break;
- }
- }
- case 4:
- {
- SendCommand_WithID("kill", ID, "");
- break;
- }
- case 5:
- SendCommand_WithID("msg", ID, TEXT);
- break;
- }
- MessageBox(hWnd1, L"已发送指令", TITLE, MB_OK);
- DestroyWindow(hWnd1);
- break;
- }
- default:
- break;
- }
- break;
- }
- case WM_CLOSE:
- DestroyWindow(hWnd1);
- break;
- case WM_DESTROY:
- hPlayer = NULL;
- break;
- default:
- return DefWindowProc(hWnd1, msg, wParam, lParam);
- }
- return 0;
- }
- LRESULT CALLBACK BkProc(HWND hWnd1, UINT msg, WPARAM wParam, LPARAM lParam) {
- switch(msg)
- {
- case WM_CREATE:
- {
- HWND hLabel_1 = CreateWindow(
- L"STATIC", L"备份选项",
- WS_VISIBLE | WS_CHILD,
- 20, 20, 100, 30,
- hWnd1, NULL,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hLevelBk = CreateWindow(
- L"BUTTON", L"备份存档",
- WS_VISIBLE | WS_CHILD,
- 30,70, 110, 40,
- hWnd1, H_ ID_FILE_Bk_Level,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hAllBk = CreateWindow(
- L"BUTTON", L"备份全部文件",
- WS_VISIBLE | WS_CHILD,
- 150,70, 170, 40,
- hWnd1, H_ ID_FILE_Bk_All,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hBkCover = CreateWindow(
- L"BUTTON", L"覆盖相应先前备份",
- WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX,
- 30, 125, 210, 40,
- hWnd1, H_ ID_FILE_Bk_Cover,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hLabel_2 = CreateWindow(
- L"STATIC", L"还原选项(应用会自动识别类型)",
- WS_VISIBLE | WS_CHILD,
- 20, 200, 290, 30,
- hWnd1, NULL,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- HWND hRec = CreateWindow(
- L"BUTTON", L"选择文件",
- WS_VISIBLE | WS_CHILD,
- 30, 245, 110, 40,
- hWnd1, H_ ID_FILE_Bk_Open,
- (HINSTANCE)GetWindowLongPtr(hWnd1, GWLP_HINSTANCE), NULL
- );
- break;
- }
- case WM_COMMAND:
- {
- WORD wmId = LOWORD(wParam);
- switch (wmId)
- {
- case ID_FILE_Bk_Level:
- break;
- case ID_FILE_Bk_All:
- break;
- case ID_FILE_Bk_Open:
- break;
- }
- break;
- }
- case WM_CLOSE:
- DestroyWindow(hWnd1);
- break;
- case WM_DESTROY:
- hBackup = NULL;
- break;
- default:
- return DefWindowProc(hWnd1, msg, wParam, lParam);
- }
- return 0;
- }
|