Skip to content

Commit 56c1017

Browse files
just a backup of my progress
1 parent 86bd079 commit 56c1017

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+2615
-829
lines changed

.prettierrc

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
{
2+
"plugins": ["prettier-plugin-svelte"],
3+
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }],
24
"trailingComma": "es5",
35
"bracketSpacing": true,
46
"arrowParens": "always",
5-
"printWidth": 200,
7+
"printWidth": 130,
68
"useTabs": true,
79
"tabWidth": 4,
810
"semi": true,
911
"singleQuote": true
10-
}
12+
}

.vscode/extensions.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
22
"recommendations": ["esbenp.prettier-vscode"]
3-
}
3+
}

README.md

+11-4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
</div>
44

55
---
6+
67
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/OrigamingWasTaken/appleblox/build.yml?color=%23F43F5E)
78
![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/OrigamingWasTaken/appleblox/total?color=%23F43F5E)
89
![GitHub License](https://img.shields.io/github/license/OrigamingWasTaken/appleblox?color=%23F43F5E)
@@ -22,34 +23,40 @@ For more recent builds, see the [nightly releases](https://nightly.link/Origamin
2223
# Features
2324

2425
### Mods
26+
2527
You can add mods to tweak Roblox's UI via the `~Library/AppleBlox/Mods` folder (there is a button in the app to open it). To do so, simply drag a Mod folder into this location. Exemple:
2628

2729
![CleanShot 2024-07-17 at 22 46 42@2x](https://github.com/user-attachments/assets/587330fe-9f50-4349-9379-794853b28527)
2830

29-
3031
Then, from AppleBlox, you can choose to enable / disable mods globally or individually. Please note that mods are loaded in alphabetical order (123,abc).
3132

3233
### DiscordRPC
34+
3335
Show which games you're playing, when you started, and supports buttons to join your server. If the Bloxstrap SDK settings has been enabled, games will be able to set custom rich presence.
3436

3537
### Bloxstrap SDK
38+
3639
AppleBlox supports many features from Bloxstrap including [the sdk](https://github.com/pizzaboxer/bloxstrap/wiki/Integrating-Bloxstrap-functionality-into-your-game). This let's games set custom **discord rich presence**, and with our addons, much more like control the Roblox window ([see this exemple for a rythm game](https://streamable.com/jwidvp?t=55)).
3740

3841
### Server notifications
42+
3943
When joining a server, you will be notified of its location. (Exemple: Paris, Île-de-France, FR)
4044

4145
### FastFlags
46+
4247
Use a collection of presets to spice-up your gameplay & add your owns.
4348

4449
### Multi-instances
50+
4551
Launch multiple windows of Roblox at the same time. Please note that AppleBlox only tracks data of **1** window, launched from the main menu.
4652

4753
## Pre-compiled Binaries
4854

4955
AppleBlox contains pre-compiled binaries of some programs at `build/lib/MacOS` from:
50-
- https://github.com/vjeantet/alerter (Taken from the github releases)
51-
- https://github.com/Rayrsn/Discord-RPC-cli (Built from source on my machine)
52-
- https://github.com/OrigamingWasTaken/utility_cli (Built from source on my machine)
56+
57+
- https://github.com/vjeantet/alerter (Taken from the github releases)
58+
- https://github.com/Rayrsn/Discord-RPC-cli (Built from source on my machine)
59+
- https://github.com/OrigamingWasTaken/utility_cli (Built from source on my machine)
5360

5461
I plan on modifying this to compile those binaries at build step, but that would mean having to install Rust and Xcode, so I'm not really sure...
5562
If you're worried that those could be modified by me or another contributor to include malicious code, you can look at the "VirusTotal Scan" GitHub workflow. This workflow scans the release assets for malicious code.

build/assets/mac.icns

15.8 KB
Binary file not shown.

build/assets/mac.png

-10.6 KB
Loading

frontend/index.html

+22-12
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
11
<!doctype html>
22
<html lang="en">
3-
<head>
4-
<meta charset="UTF-8" />
5-
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6-
<script src="<%- url %>/__neutralino_globals.js"></script>
7-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8-
<title>Vite + Svelte + TS</title>
9-
</head>
10-
<body>
11-
<div id="app">
12-
</div>
13-
<script type="module" src="/src/windows/main/main.ts"></script>
14-
</body>
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6+
<script src="<%- url %>/__neutralino_globals.js"></script>
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8+
<title>AppleBlox</title>
9+
<style>
10+
body {
11+
background-color: white;
12+
}
13+
14+
@media (prefers-color-scheme: dark) {
15+
body {
16+
background-color: #242424;
17+
}
18+
}
19+
</style>
20+
</head>
21+
<body>
22+
<div id="app"></div>
23+
<script type="module" src="/src/windows/main/main.ts"></script>
24+
</body>
1525
</html>

frontend/public/favicon.png

-94.3 KB
Loading

frontend/src/assets/appleblox.png

-52.7 KB
Binary file not shown.

frontend/src/assets/favicon.png

-94.3 KB
Loading

frontend/src/lib/components/ui/select/select-item.svelte

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@
1111
export let label: $$Props["label"] = undefined;
1212
export let disabled: $$Props["disabled"] = undefined;
1313
export { className as class };
14+
1415
</script>
1516

1617
<SelectPrimitive.Item
1718
{value}
1819
{disabled}
1920
{label}
2021
class={cn(
21-
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50",
22+
"cursor-pointer relative flex w-full select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50",
2223
className
2324
)}
2425
{...$$restProps}

frontend/src/lib/utils.ts

+10-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { type ClassValue, clsx } from "clsx";
2-
import { twMerge } from "tailwind-merge";
3-
import { cubicOut } from "svelte/easing";
4-
import type { TransitionConfig } from "svelte/transition";
1+
import { type ClassValue, clsx } from 'clsx';
2+
import { twMerge } from 'tailwind-merge';
3+
import { cubicOut } from 'svelte/easing';
4+
import type { TransitionConfig } from 'svelte/transition';
55

66
export function cn(...inputs: ClassValue[]) {
77
return twMerge(clsx(inputs));
@@ -19,7 +19,7 @@ export const flyAndScale = (
1919
params: FlyAndScaleParams = { y: -8, x: 0, start: 0.95, duration: 150 }
2020
): TransitionConfig => {
2121
const style = getComputedStyle(node);
22-
const transform = style.transform === "none" ? "" : style.transform;
22+
const transform = style.transform === 'none' ? '' : style.transform;
2323

2424
const scaleConversion = (
2525
valueA: number,
@@ -35,13 +35,11 @@ export const flyAndScale = (
3535
return valueB;
3636
};
3737

38-
const styleToString = (
39-
style: Record<string, number | string | undefined>
40-
): string => {
38+
const styleToString = (style: Record<string, number | string | undefined>): string => {
4139
return Object.keys(style).reduce((str, key) => {
4240
if (style[key] === undefined) return str;
4341
return str + `${key}:${style[key]};`;
44-
}, "");
42+
}, '');
4543
};
4644

4745
return {
@@ -54,9 +52,9 @@ export const flyAndScale = (
5452

5553
return styleToString({
5654
transform: `${transform} translate3d(${x}px, ${y}px, 0) scale(${scale})`,
57-
opacity: t
55+
opacity: t,
5856
});
5957
},
60-
easing: cubicOut
58+
easing: cubicOut,
6159
};
62-
};
60+
};

frontend/src/types/settings.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import type { ComponentType, SvelteComponent } from 'svelte';
2-
import { i } from 'vite/dist/node/types.d-aGj9QkWt';
1+
import { type ComponentType, SvelteComponent } from 'svelte';
32

43
export type InteractableOptions = {
54
type: 'boolean';
@@ -77,7 +76,13 @@ export interface SettingsPanel {
7776
}
7877
| {
7978
type: 'button';
80-
style: 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link' | 'default';
79+
style:
80+
| 'secondary'
81+
| 'destructive'
82+
| 'outline'
83+
| 'ghost'
84+
| 'link'
85+
| 'default';
8186
icon?: Icon;
8287
}
8388
| {
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
<script lang="ts">
2-
import { os } from '@neutralinojs/lib';
2+
import { os } from '@neutralinojs/lib';
33
4-
export let label: string;
5-
export let icon: string;
6-
export let url: string;
4+
export let label: string;
5+
export let icon: string;
6+
export let url: string;
77
</script>
8-
9-
<button
10-
class="flex items-center justify-center mb-2"
11-
on:click={() => {
12-
os.open(url)
13-
}}>
14-
<img src={icon} alt="Linkicon icon" class="w-[15px] towhite mr-1" />
15-
<p class={'text-black hover:opacity-50 dark:text-gray-300 dark:hover:text-gray-50 transition duration-100 font-mono text-[14px]'}>{label}</p>
16-
</button>
8+
9+
<button
10+
class="flex items-center justify-center mb-2"
11+
on:click={() => {
12+
os.open(url);
13+
}}
14+
>
15+
<img src={icon} alt="Linkicon icon" class="w-[15px] towhite mr-1" />
16+
<p
17+
class={'text-black hover:opacity-50 dark:text-gray-300 dark:hover:text-gray-50 transition duration-100 font-mono text-[14px]'}
18+
>
19+
{label}
20+
</p>
21+
</button>

frontend/src/windows/main/Sidebar/Sidebar.svelte

+36-9
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,16 @@
3232
// Sidebar Buttons
3333
const linksBtns: { label: string; icon: string; url: string }[] = [
3434
{ label: 'Discord', icon: DiscordIcon, url: 'https://appleblox.com/discord' },
35-
{ label: 'GitHub', icon: GithubIcon, url: 'https://github.com/OrigamingWasTaken/appleblox' },
36-
{ label: 'Issues', icon: BugsIcon, url: 'https://github.com/OrigamingWasTaken/appleblox/issues' },
35+
{
36+
label: 'GitHub',
37+
icon: GithubIcon,
38+
url: 'https://github.com/OrigamingWasTaken/appleblox',
39+
},
40+
{
41+
label: 'Issues',
42+
icon: BugsIcon,
43+
url: 'https://github.com/OrigamingWasTaken/appleblox/issues',
44+
},
3745
];
3846
3947
const sidebarBtns: { label: string; id: string; icon: string }[] = [
@@ -66,7 +74,8 @@
6674
// Play button text and color
6775
let isHovering = false;
6876
$: buttonState = isLaunched ? (isHovering ? 'Kill' : 'Active') : 'Play';
69-
$: buttonIcon = buttonState === 'Play' ? PlayIcon : buttonState === 'Active' ? RobloxIcon : KillIcon;
77+
$: buttonIcon =
78+
buttonState === 'Play' ? PlayIcon : buttonState === 'Active' ? RobloxIcon : KillIcon;
7079
7180
function handleMouseEnter() {
7281
isHovering = true;
@@ -86,7 +95,10 @@
8695
const dispatch = createEventDispatcher<{ launchRoblox: boolean }>();
8796
</script>
8897

89-
<div class="h-full bg-[#F3F4F6] dark:bg-[#1B1B1B] w-36 fixed top-0 left-0 overflow-x-hidden select-none flex flex-col" {id}>
98+
<div
99+
class="h-full bg-[#F3F4F6] dark:bg-[#1B1B1B] w-36 fixed top-0 left-0 overflow-x-hidden select-none flex flex-col"
100+
{id}
101+
>
90102
<div class="flex-grow">
91103
<a
92104
href="https://github.com/OrigamingWasTaken/appleblox"
@@ -98,16 +110,22 @@
98110
}}
99111
>
100112
<div class="mt-3 flex">
101-
<img src={logo} class="h-6 mr-1 opacity-85 logo bg-[#dcdcdc] dark:bg-[#1B1B1B] rounded-lg" alt="Svelte Logo" />
102-
<p class="text-black dark:text-white font-bold font-mono logo">AppleBlox</p>
113+
<img src={logo} class="h-12 mr-1 opacity-85 logo rounded-lg" alt="Svelte Logo" />
114+
<!-- <p class="text-black dark:text-white font-bold font-mono logo">AppleBlox</p> -->
103115
</div>
104116
</a>
105117
<div class="m-4">
106118
<Separator class="my-4 bg-gray-500" />
107119
</div>
108120
<div class="mt-3 grid grid-cols-1">
109121
{#each sidebarBtns as { label, id, icon }}
110-
<SidebarBtn bind:currentPage {label} {id} {icon} on:sidebarClick={sidebarItemClicked} />
122+
<SidebarBtn
123+
bind:currentPage
124+
{label}
125+
{id}
126+
{icon}
127+
on:sidebarClick={sidebarItemClicked}
128+
/>
111129
{/each}
112130
</div>
113131
<div class="m-4">
@@ -122,7 +140,12 @@
122140
<div class="flex flex-col items-center mb-4">
123141
<p class="text-sm text-gray-500 mb-2">v{version}</p>
124142

125-
<div on:mouseenter={handleMouseEnter} on:mouseleave={handleMouseLeave} role="tooltip" class="w-[105px]">
143+
<div
144+
on:mouseenter={handleMouseEnter}
145+
on:mouseleave={handleMouseLeave}
146+
role="tooltip"
147+
class="w-[105px]"
148+
>
126149
<Button
127150
class={`${isLaunched ? 'bg-blue-400 hover:bg-red-500' : 'bg-green-600 hover:bg-green-800'} font-mono w-full`}
128151
on:click={() => {
@@ -133,7 +156,11 @@
133156
dispatch('launchRoblox', true);
134157
}}
135158
>
136-
<img src={buttonIcon} alt="Button Icon" class="mr-1 mt-[1px] w-5 h-5 towhite-always" />
159+
<img
160+
src={buttonIcon}
161+
alt="Button Icon"
162+
class="mr-1 mt-[1px] w-5 h-5 towhite-always"
163+
/>
137164
<p class="font-mono transition duration-150">{buttonState}</p>
138165
</Button>
139166
</div>
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
<script lang="ts">
2-
export let label: string;
3-
export let icon: string;
4-
export let id: string;
5-
import { createEventDispatcher } from 'svelte';
2+
export let label: string;
3+
export let icon: string;
4+
export let id: string;
5+
import { createEventDispatcher } from 'svelte';
66
7-
export let currentPage: string;
7+
export let currentPage: string;
88
9-
const dispatch = createEventDispatcher<{ sidebarClick: string }>();
9+
const dispatch = createEventDispatcher<{ sidebarClick: string }>();
1010
</script>
11-
12-
<button
13-
class="flex items-center justify-center mb-2"
14-
on:click={() => {
15-
dispatch('sidebarClick', id);
16-
}}>
17-
<img src={icon} alt="Sidebar icon" class="w-[15px] towhite mr-1" />
18-
<p class={`${currentPage === id ? 'text-red-400 hover:text-red-300' : 'text-black hover:opacity-50 dark:text-gray-300 dark:hover:text-gray-50'} transition duration-100 font-mono text-[14px]`}>{label}</p>
19-
</button>
11+
12+
<button
13+
class="flex items-center justify-center mb-2"
14+
on:click={() => {
15+
dispatch('sidebarClick', id);
16+
}}
17+
>
18+
<img src={icon} alt="Sidebar icon" class="w-[15px] towhite mr-1" />
19+
<p
20+
class={`${currentPage === id ? 'text-red-400 hover:text-red-300' : 'text-black hover:opacity-50 dark:text-gray-300 dark:hover:text-gray-50'} transition duration-100 font-mono text-[14px]`}
21+
>
22+
{label}
23+
</p>
24+
</button>

0 commit comments

Comments
 (0)