commit
c6da92474c
11 changed files with 44 additions and 30 deletions
|
|
@ -84,5 +84,10 @@ custom-protocol = [ "tauri/custom-protocol" ]
|
|||
|
||||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
objc2 = "0.6.3"
|
||||
objc2-app-kit = { version = "0.3.2", features = ["NSWindow", "NSButton", "NSControl", "NSView"] }
|
||||
objc2-foundation = { version = "0.3.2", features = ["NSObject"] }
|
||||
objc2-app-kit = { version = "0.3.2", features = [
|
||||
"NSWindow",
|
||||
"NSButton",
|
||||
"NSControl",
|
||||
"NSView"
|
||||
] }
|
||||
objc2-foundation = { version = "0.3.2", features = [ "NSObject" ] }
|
||||
|
|
|
|||
|
|
@ -303,10 +303,9 @@ export type VersionType =
|
|||
*/
|
||||
"old_beta"
|
||||
|
||||
const ARGS_MAP = { 'folders':'{"fromCluster":["folder_name"],"openCluster":["folder_name"]}', 'core':'{"getLogByName":["id","name"],"getClusterById":["id"],"getLogs":["id"],"setDiscordRPCMessage":["message"],"getClusters":[],"getWorlds":["id"],"createSettingsProfile":["name"],"getUsers":[],"isClusterRunning":["cluster_id"],"fetchMinecraftProfile":["uuid"],"getPackage":["provider","slug"],"getScreenshots":["id"],"getRunningProcessesByClusterId":["cluster_id"],"getUsersFromAuthor":["provider","author"],"getLinkedPackages":["cluster_id"],"openMsaLogin":[],"getDefaultUser":["fallback"],"downloadExternalPackage":["package","cluster_id","force","skip_compatibility"],"writeSettings":["setting"],"getUser":["uuid"],"readSettings":[],"fetchLoggedInProfile":["access_token"],"getLoadersForVersion":["mc_version"],"open":["input"],"killProcess":["pid"],"installModpack":["modpack","cluster_id"],"setClusterStage":["id","stage"],"getRunningProcesses":[],"getProfileOrDefault":["name"],"updateClusterProfile":["name","profile"],"removeCluster":["id"],"getGameVersions":[],"getPackageBody":["provider","body"],"getMultiplePackages":["provider","slugs"],"getPackageVersions":["provider","slug","mc_version","loader","offset","limit"],"downloadPackage":["provider","package_id","version_id","cluster_id","skip_compatibility"],"changeSkin":["access_token","skin_url","skin_variant"],"changeCape":["access_token","cape_uuid"],"removeUser":["uuid"],"setDefaultUser":["uuid"],"launchCluster":["id","uuid","search_for_java"],"updateClusterById":["id","request"],"createCluster":["options"],"getGlobalProfile":[],"searchPackages":["provider","query"],"removePackage":["cluster_id","package_hash"],"uploadSkinBytes":["access_token","skin_data","image_format","skin_variant"],"removeCape":["access_token"],"convertUsernameUUID":["username_uuid"]}', 'debug':'{"getArch":[],"getBuildTimestamp":[],"getPlatform":[],"getType":[],"getLocale":[],"getOsVersion":[],"openDevTools":[],"getGitCommitHash":[],"isInDev":[],"getPackageVersion":[],"getFamily":[]}', 'oneclient':'{"installUpdate":[],"getClustersGroupedByMajor":[],"checkForUpdate":[],"getBundlesFor":["cluster_id"],"getVersions":[]}', 'events':'{"process":["event"],"ingress":["event"],"message":["event"]}' }
|
||||
export type Router = { 'events': { ingress: (event: IngressPayload) => Promise<void>,
|
||||
message: (event: MessagePayload) => Promise<void>,
|
||||
process: (event: ProcessPayload) => Promise<void> },
|
||||
const ARGS_MAP = { 'debug':'{"getArch":[],"getBuildTimestamp":[],"getPlatform":[],"getType":[],"getLocale":[],"getOsVersion":[],"openDevTools":[],"getGitCommitHash":[],"isInDev":[],"getPackageVersion":[],"getFamily":[]}', 'folders':'{"fromCluster":["folder_name"],"openCluster":["folder_name"]}', 'events':'{"process":["event"],"ingress":["event"],"message":["event"]}', 'core':'{"getLogByName":["id","name"],"getClusterById":["id"],"getLogs":["id"],"setDiscordRPCMessage":["message"],"getClusters":[],"getWorlds":["id"],"createSettingsProfile":["name"],"getUsers":[],"isClusterRunning":["cluster_id"],"fetchMinecraftProfile":["uuid"],"getPackage":["provider","slug"],"getScreenshots":["id"],"getRunningProcessesByClusterId":["cluster_id"],"getUsersFromAuthor":["provider","author"],"getLinkedPackages":["cluster_id"],"openMsaLogin":[],"getDefaultUser":["fallback"],"downloadExternalPackage":["package","cluster_id","force","skip_compatibility"],"writeSettings":["setting"],"getUser":["uuid"],"readSettings":[],"fetchLoggedInProfile":["access_token"],"getLoadersForVersion":["mc_version"],"open":["input"],"killProcess":["pid"],"installModpack":["modpack","cluster_id"],"setClusterStage":["id","stage"],"getRunningProcesses":[],"getProfileOrDefault":["name"],"updateClusterProfile":["name","profile"],"removeCluster":["id"],"getGameVersions":[],"getPackageBody":["provider","body"],"getMultiplePackages":["provider","slugs"],"getPackageVersions":["provider","slug","mc_version","loader","offset","limit"],"downloadPackage":["provider","package_id","version_id","cluster_id","skip_compatibility"],"changeSkin":["access_token","skin_url","skin_variant"],"changeCape":["access_token","cape_uuid"],"removeUser":["uuid"],"setDefaultUser":["uuid"],"launchCluster":["id","uuid","search_for_java"],"updateClusterById":["id","request"],"createCluster":["options"],"getGlobalProfile":[],"searchPackages":["provider","query"],"removePackage":["cluster_id","package_hash"],"uploadSkinBytes":["access_token","skin_data","image_format","skin_variant"],"removeCape":["access_token"],"convertUsernameUUID":["username_uuid"]}', 'oneclient':'{"installUpdate":[],"getClustersGroupedByMajor":[],"checkForUpdate":[],"getBundlesFor":["cluster_id"],"getVersions":[]}' }
|
||||
export type Router = { 'folders': { fromCluster: (folderName: string) => Promise<string>,
|
||||
openCluster: (folderName: string) => Promise<null> },
|
||||
'debug': { openDevTools: () => Promise<void>,
|
||||
isInDev: () => Promise<boolean>,
|
||||
getArch: () => Promise<string>,
|
||||
|
|
@ -372,8 +371,9 @@ removeCape: (accessToken: string) => Promise<MojangFullPlayerProfile>,
|
|||
convertUsernameUUID: (usernameUuid: string) => Promise<MowojangProfile>,
|
||||
setDiscordRPCMessage: (message: string) => Promise<null>,
|
||||
open: (input: string) => Promise<null> },
|
||||
'folders': { fromCluster: (folderName: string) => Promise<string>,
|
||||
openCluster: (folderName: string) => Promise<null> } };
|
||||
'events': { ingress: (event: IngressPayload) => Promise<void>,
|
||||
message: (event: MessagePayload) => Promise<void>,
|
||||
process: (event: ProcessPayload) => Promise<void> } };
|
||||
|
||||
|
||||
export type { InferCommandOutput }
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ export function DownloadModButton({ cluster, file }: { cluster: ClusterModel; fi
|
|||
const [pkg, version] = file.kind.Managed;
|
||||
if (version.dependencies.length > 0)
|
||||
for (const dependency of version.dependencies)
|
||||
if (dependency.dependency_type === "required") {
|
||||
if (dependency.dependency_type === 'required') {
|
||||
const slug = dependency.project_id ?? '';
|
||||
const versions = await bindings.core.getPackageVersions(pkg.provider, slug, cluster.mc_version, cluster.mc_loader, 0, 1);
|
||||
await bindings.core.downloadPackage(pkg.provider, slug, versions.items[0].version_id, cluster.id, null);
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ export function ModCard({ file, cluster }: ModCardProps) {
|
|||
}
|
||||
|
||||
return mods?.includes(file) ?? false;
|
||||
}, [installedPackages, mods, file]);
|
||||
}, [installedPackages, kind, mods, file]);
|
||||
|
||||
const [isSelected, setSelected] = useState(isInstalled);
|
||||
useEffect(() => {
|
||||
|
|
@ -137,7 +137,7 @@ export function ModCard({ file, cluster }: ModCardProps) {
|
|||
const [pkg, version] = kind.Managed;
|
||||
if (version.dependencies.length > 0)
|
||||
for (const dependency of version.dependencies)
|
||||
if (dependency.dependency_type === "required") {
|
||||
if (dependency.dependency_type === 'required') {
|
||||
const slug = dependency.project_id ?? '';
|
||||
const versions = await bindings.core.getPackageVersions(pkg.provider, slug, cluster.mc_version, cluster.mc_loader, 0, 1);
|
||||
await bindings.core.downloadPackage(pkg.provider, slug, versions.items[0].version_id, cluster.id, null);
|
||||
|
|
@ -155,7 +155,7 @@ export function ModCard({ file, cluster }: ModCardProps) {
|
|||
if ('Managed' in kind) {
|
||||
const [_, version] = kind.Managed;
|
||||
const primary = version.files.find(f => f.primary) ?? version.files[0];
|
||||
hash = primary?.sha1;
|
||||
hash = primary.sha1;
|
||||
}
|
||||
else {
|
||||
hash = kind.External.sha1;
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ function DownloadingMods({ mods, setOpen, nextPath }: { mods: ModDataArray; setO
|
|||
const cluster = await bindings.core.getClusterById(mod.clusterId);
|
||||
if (!cluster)
|
||||
continue;
|
||||
if (dependency.dependency_type === "required") {
|
||||
if (dependency.dependency_type === 'required') {
|
||||
const slug = dependency.project_id ?? '';
|
||||
const versions = await bindings.core.getPackageVersions(mod.provider, slug, cluster.mc_version, cluster.mc_loader, 0, 1);
|
||||
if (versions.items.length !== 0)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ export function Stepper({ steps, currentStepIndex }: VerticalStepperProps) {
|
|||
className={twMerge('after:transition-all after:duration-300 after:text-brand transition-all duration-300 relative flex items-center cursor-pointer py-2 pl-4 font-medium text-gray-400 text-base partial-leftline-0% data-active:text-white data-active:text-lg data-active:partial-leftline-100% data-complete:partial-leftline-100%')}
|
||||
data-active={index === currentStepIndex || null}
|
||||
data-complete={index < currentStepIndex || null}
|
||||
key={index}
|
||||
key={step.path}
|
||||
>
|
||||
<span>{step.title}</span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -77,8 +77,10 @@ function useDiscordRPC() {
|
|||
function useAutoUpdate() {
|
||||
useEffect(() => {
|
||||
const unlistenPromise = listenForUpdateEvents(async (event) => {
|
||||
// eslint-disable-next-line no-console -- Used for debugging - aka important
|
||||
console.log('Updater event:', event);
|
||||
if (event.status === 'updateAvailable') {
|
||||
// eslint-disable-next-line no-console -- Used for debugging - aka important
|
||||
console.log('Update available, installing...');
|
||||
try {
|
||||
await installUpdate();
|
||||
|
|
@ -91,6 +93,7 @@ function useAutoUpdate() {
|
|||
|
||||
checkForUpdate().then((update) => {
|
||||
if (update)
|
||||
// eslint-disable-next-line no-console -- Used for debugging - aka important
|
||||
console.log('Update found on initial check:', update.version);
|
||||
}).catch(e => console.error('Failed to check for update:', e));
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ export const Route = createFileRoute('/app/account')({
|
|||
queryFn: () => bindings.core.fetchLoggedInProfile(profile.access_token),
|
||||
});
|
||||
|
||||
|
||||
const profileData = await query;
|
||||
|
||||
const playerDataQuery = context.queryClient.ensureQueryData({
|
||||
|
|
@ -36,13 +35,13 @@ export const Route = createFileRoute('/app/account')({
|
|||
queryFn: () => bindings.core.fetchMinecraftProfile(profileData.id),
|
||||
});
|
||||
|
||||
const playerData = await playerDataQuery
|
||||
const playerData = await playerDataQuery;
|
||||
|
||||
return {
|
||||
profileData,
|
||||
profile,
|
||||
validSearch,
|
||||
playerData
|
||||
playerData,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ function RouteComponent() {
|
|||
|
||||
setSkins(prev => [...prev, skinData]);
|
||||
setSelectedSkin(skinData);
|
||||
setSelectedCape(skinData.cape_url ?? '')
|
||||
setSelectedCape(skinData.cape_url ?? '');
|
||||
}, [loaded]);
|
||||
|
||||
const importFromURL = (url: string) => {
|
||||
|
|
@ -362,16 +362,16 @@ function RenderSkin({ skin, selected, animation, setSelectedSkin, setSkins, cape
|
|||
{selected.skin_url === skin.skin_url
|
||||
? <></>
|
||||
: (
|
||||
<Overlay.Trigger>
|
||||
<Button className="group w-8 h-8 absolute top-0 right-0" color="ghost" size="icon">
|
||||
<Trash01Icon className="group-hover:stroke-danger" />
|
||||
</Button>
|
||||
<Overlay.Trigger>
|
||||
<Button className="group w-8 h-8 absolute top-0 right-0" color="ghost" size="icon">
|
||||
<Trash01Icon className="group-hover:stroke-danger" />
|
||||
</Button>
|
||||
|
||||
<Overlay>
|
||||
<RemoveSkinCapeModal onPress={() => setSkins(prev => prev.filter(skinData => skinData.skin_url !== skin.skin_url))} />
|
||||
</Overlay>
|
||||
</Overlay.Trigger>
|
||||
)}
|
||||
<Overlay>
|
||||
<RemoveSkinCapeModal onPress={() => setSkins(prev => prev.filter(skinData => skinData.skin_url !== skin.skin_url))} />
|
||||
</Overlay>
|
||||
</Overlay.Trigger>
|
||||
)}
|
||||
<Button
|
||||
className="group w-8 h-8 absolute bottom-0 right-0"
|
||||
color="ghost"
|
||||
|
|
|
|||
|
|
@ -119,7 +119,9 @@ function ModCategoryCard({ art, fullVersionName, bundle, mods, setMods, clusterI
|
|||
const isSelected = files.filter(file => file.enabled).every(file => mods.includes(file));
|
||||
const handleDownload = () => {
|
||||
setMods((prevMods) => {
|
||||
if (isSelected) { return prevMods.filter(mod => !files.includes(mod)); }
|
||||
if (isSelected) {
|
||||
return prevMods.filter(mod => !files.includes(mod));
|
||||
}
|
||||
else {
|
||||
const filesToAdd = files.filter(file => file.enabled && !prevMods.includes(file));
|
||||
return [...filesToAdd, ...prevMods];
|
||||
|
|
|
|||
|
|
@ -83,5 +83,10 @@ custom-protocol = [ "tauri/custom-protocol" ]
|
|||
|
||||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
objc2 = "0.6.3"
|
||||
objc2-app-kit = { version = "0.3.2", features = ["NSWindow", "NSButton", "NSControl", "NSView"] }
|
||||
objc2-foundation = { version = "0.3.2", features = ["NSObject"] }
|
||||
objc2-app-kit = { version = "0.3.2", features = [
|
||||
"NSWindow",
|
||||
"NSButton",
|
||||
"NSControl",
|
||||
"NSView"
|
||||
] }
|
||||
objc2-foundation = { version = "0.3.2", features = [ "NSObject" ] }
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue