mirror of
https://github.com/dream-pep/koring-launcher.git
synced 2026-09-12 05:45:18 +08:00
59 lines
1.8 KiB
TypeScript
59 lines
1.8 KiB
TypeScript
import electron from 'electron';
|
|||
|
|
import { createInstance, listInstances, deleteInstance, getInstanceInfo } from '../core/instance';
|
||
|
|
|
||
|
|
const { ipcMain } = electron;
|
||
|
|
|
||
|
|
export function registerInstanceHandlers() {
|
||
|
|
ipcMain.handle('instance:create', async (_event, payload: {
|
||
|
|
name: string;
|
||
|
|
gamePath: string;
|
||
|
|
mcVersion: string;
|
||
|
|
loaderType?: string;
|
||
|
|
loaderVersion?: string;
|
||
|
|
javaPath?: string;
|
||
|
|
memory?: { min?: string; max?: string };
|
||
|
|
}) => {
|
||
|
|
try {
|
||
|
|
const data = await createInstance(
|
||
|
|
payload.name,
|
||
|
|
payload.gamePath,
|
||
|
|
payload.mcVersion,
|
||
|
|
payload.loaderType,
|
||
|
|
payload.loaderVersion,
|
||
|
|
payload.javaPath,
|
||
|
|
payload.memory
|
||
|
|
);
|
||
|
|
return { success: true, data, error: null };
|
||
|
|
} catch (e: unknown) {
|
||
|
|
return { success: false, data: null, error: String(e) };
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
ipcMain.handle('instance:list', async (_event, payload: { instancesPath: string }) => {
|
||
|
|
try {
|
||
|
|
const data = await listInstances(payload.instancesPath);
|
||
|
|
return { success: true, data, error: null };
|
||
|
|
} catch (e: unknown) {
|
||
|
|
return { success: false, data: null, error: String(e) };
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
ipcMain.handle('instance:delete', async (_event, payload: { name: string; instancesPath: string }) => {
|
||
|
|
try {
|
||
|
|
const data = await deleteInstance(payload.name, payload.instancesPath);
|
||
|
|
return { success: true, data, error: null };
|
||
|
|
} catch (e: unknown) {
|
||
|
|
return { success: false, data: null, error: String(e) };
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
ipcMain.handle('instance:info', async (_event, payload: { name: string; instancesPath: string }) => {
|
||
|
|
try {
|
||
|
|
const data = await getInstanceInfo(payload.name, payload.instancesPath);
|
||
|
|
return { success: true, data, error: null };
|
||
|
|
} catch (e: unknown) {
|
||
|
|
return { success: false, data: null, error: String(e) };
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|