first commit

This commit is contained in:
Jonny_Bro (Nikita) 2024-03-17 16:35:33 +05:00
commit 996dc8bb18
No known key found for this signature in database
GPG key ID: 3F1ECC04147E9BD8
77 changed files with 751 additions and 0 deletions

View file

@ -0,0 +1 @@
import{_ as r}from"./_layout-da46b06b.js";import{default as t}from"../components/layout.svelte-81b25a9c.js";export{t as component,r as universal};

View file

@ -0,0 +1 @@
import{default as t}from"../components/error.svelte-cf040f97.js";export{t as component};

View file

@ -0,0 +1 @@
import{default as t}from"../components/pages/_page.svelte-7d3b4c8a.js";export{t as component};

View file

@ -0,0 +1 @@
const e=!0,r=Object.freeze(Object.defineProperty({__proto__:null,prerender:!0},Symbol.toStringTag,{value:"Module"}));export{r as _,e as p};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
import{B as d,s as w}from"./index-1f5fb370.js";const c=[];function b(e,t=d){let n;const s=new Set;function o(a){if(w(e,a)&&(e=a,n)){const u=!c.length;for(const l of s)l[1](),c.push(l,e);if(u){for(let l=0;l<c.length;l+=2)c[l][0](c[l+1]);c.length=0}}}function r(a){o(a(e))}function i(a,u=d){const l=[a,u];return s.add(l),s.size===1&&(n=t(o)||d),a(e),()=>{s.delete(l),s.size===0&&(n(),n=null)}}return{set:o,update:r,subscribe:i}}let m="",p="",E="";function I(e){p=e.base,m=e.assets||p}function y(e){E=e}const S="sveltekit:scroll",x="sveltekit:index",h={tap:1,hover:2,viewport:3,eager:4,off:-1};function T(e){let t=e.baseURI;if(!t){const n=e.getElementsByTagName("base");t=n.length?n[0].href:e.URL}return t}function U(){return{x:pageXOffset,y:pageYOffset}}function f(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const _={...h,"":h.hover};function v(e){let t=e.assignedSlot??e.parentNode;return(t==null?void 0:t.nodeType)===11&&(t=t.host),t}function L(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=v(e)}}function O(e,t){let n;try{n=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI)}catch{}const s=e instanceof SVGAElement?e.target.baseVal:e.target,o=!n||!!s||k(n,t)||(e.getAttribute("rel")||"").split(/\s+/).includes("external")||e.hasAttribute("download");return{url:n,external:o,target:s}}function V(e){let t=null,n=null,s=null,o=null,r=e;for(;r&&r!==document.documentElement;)n===null&&(n=f(r,"preload-code")),s===null&&(s=f(r,"preload-data")),t===null&&(t=f(r,"noscroll")),o===null&&(o=f(r,"reload")),r=v(r);return{preload_code:_[n??"off"],preload_data:_[s??"off"],noscroll:t==="off"?!1:t===""?!0:null,reload:o==="off"?!1:o===""?!0:null}}function g(e){const t=b(e);let n=!0;function s(){n=!0,t.update(i=>i)}function o(i){n=!1,t.set(i)}function r(i){let a;return t.subscribe(u=>{(a===void 0||n&&u!==a)&&i(a=u)})}return{notify:s,set:o,subscribe:r}}function R(){const{set:e,subscribe:t}=b(!1);let n;async function s(){clearTimeout(n);const o=await fetch(`${m}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(o.ok){const i=(await o.json()).version!==E;return i&&(e(!0),clearTimeout(n)),i}else throw new Error(`Version check failed: ${o.status}`)}return{subscribe:t,check:s}}function k(e,t){return e.origin!==location.origin||!e.pathname.startsWith(t)}function N(e){e.client}const $={url:g({}),page:g({}),navigating:b(null),updated:R()};export{x as I,h as P,S,O as a,V as b,U as c,I as d,N as e,L as f,T as g,y as h,k as i,$ as s};

View file

@ -0,0 +1 @@
import{S,i as q,s as x,k as f,q as _,a as H,l as d,m as g,r as h,h as u,c as k,b as m,G as v,u as $,B as E,H as y}from"../chunks/index-1f5fb370.js";import{s as B}from"../chunks/singletons-b768face.js";const C=()=>{const s=B;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},G={subscribe(s){return C().page.subscribe(s)}};function P(s){var b;let t,r=s[0].status+"",o,n,i,c=((b=s[0].error)==null?void 0:b.message)+"",l;return{c(){t=f("h1"),o=_(r),n=H(),i=f("p"),l=_(c)},l(e){t=d(e,"H1",{});var a=g(t);o=h(a,r),a.forEach(u),n=k(e),i=d(e,"P",{});var p=g(i);l=h(p,c),p.forEach(u)},m(e,a){m(e,t,a),v(t,o),m(e,n,a),m(e,i,a),v(i,l)},p(e,[a]){var p;a&1&&r!==(r=e[0].status+"")&&$(o,r),a&1&&c!==(c=((p=e[0].error)==null?void 0:p.message)+"")&&$(l,c)},i:E,o:E,d(e){e&&u(t),e&&u(n),e&&u(i)}}}function j(s,t,r){let o;return y(s,G,n=>r(0,o=n)),[o]}let A=class extends S{constructor(t){super(),q(this,t,j,P,x,{})}};export{A as default};

View file

@ -0,0 +1 @@
import{S as o,i,s as r,C as u,D as f,E as _,F as c,f as p,t as d}from"../chunks/index-1f5fb370.js";function m(n){let s;const l=n[1].default,e=u(l,n,n[0],null);return{c(){e&&e.c()},l(t){e&&e.l(t)},m(t,a){e&&e.m(t,a),s=!0},p(t,[a]){e&&e.p&&(!s||a&1)&&f(e,l,t,t[0],s?c(l,t[0],a,null):_(t[0]),null)},i(t){s||(p(e,t),s=!0)},o(t){d(e,t),s=!1},d(t){e&&e.d(t)}}}function $(n,s,l){let{$$slots:e={},$$scope:t}=s;return n.$$set=a=>{"$$scope"in a&&l(0,t=a.$$scope)},[t,e]}class h extends o{constructor(s){super(),i(this,s,$,m,r,{})}}export{h as default};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
import{p}from"../../chunks/_layout-da46b06b.js";export{p as prerender};

File diff suppressed because one or more lines are too long

1
_app/version.json Normal file
View file

@ -0,0 +1 @@
{"version":"1686129339681"}

BIN
css/HeadUpDaisy.ttf Normal file

Binary file not shown.

218
css/main.css Normal file
View file

@ -0,0 +1,218 @@
[data-theme="dark"],
:root:not([data-theme="dark"]) {
--background-color: #101010;
--color: #fff;
--h1-color: #fff;
--h2-color: #fff;
--h3-color: #fff;
--h4-color: #fff;
--h5-color: #fff;
--h6-color: #fff;
--muted-color: hsl(205deg, 0%, 50%);
--muted-border-color: #1f2d38;
--primary: #fff;
--primary-hover: hsl(195deg, 0%, 50%);
--primary-focus: rgba(64, 64, 64, 0);
--primary-inverse: #fff;
--secondary: hsl(205deg, 0%, 41%);
--secondary-hover: hsl(205deg, 0%, 50%);
--secondary-focus: rgba(115, 130, 140, 0);
--secondary-inverse: #fff;
--contrast: hsl(205deg, 20%, 94%);
--contrast-hover: #fff;
--contrast-focus: rgba(115, 130, 140, 0);
--contrast-inverse: #000;
--mark-background-color: #161616;
--mark-color: #11191f;
--ins-color: #388e3c;
--del-color: #c62828;
--blockquote-border-color: var(--muted-border-color);
--blockquote-footer-color: var(--muted-color);
--button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
--button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
--form-element-background-color: #161616;
--form-element-border-color: #374956;
--form-element-color: var(--color);
--form-element-placeholder-color: var(--muted-color);
--form-element-active-background-color: var(--form-element-background-color);
--form-element-active-border-color: var(--primary);
--form-element-focus-color: var(--primary-focus);
--form-element-disabled-background-color: #161616;
--form-element-disabled-border-color: hsl(205deg, 20%, 32%);
--form-element-disabled-opacity: 0.5;
--form-element-invalid-border-color: #b71c1c;
--form-element-invalid-active-border-color: #c62828;
--form-element-invalid-focus-color: rgba(198, 40, 40, 0.25);
--form-element-valid-border-color: #2e7d32;
--form-element-valid-active-border-color: #388e3c;
--form-element-valid-focus-color: rgba(56, 142, 60, 0.25);
--switch-background-color: #161616;
--switch-color: var(--primary-inverse);
--switch-checked-background-color: var(--primary);
--range-border-color: #24333e;
--range-active-border-color: hsl(205deg, 25%, 23%);
--range-thumb-border-color: var(--background-color);
--range-thumb-color: var(--secondary);
--range-thumb-hover-color: var(--secondary-hover);
--range-thumb-active-color: var(--primary);
--table-border-color: var(--muted-border-color);
--table-row-stripped-background-color: rgba(115, 130, 140, 0.05);
--code-background-color: #161616;
--code-color: var(--muted-color);
--code-kbd-background-color: var(--contrast);
--code-kbd-color: var(--contrast-inverse);
--code-tag-color: hsl(330deg, 30%, 50%);
--code-property-color: hsl(185deg, 30%, 50%);
--code-value-color: hsl(40deg, 10%, 50%);
--code-comment-color: #4d606d;
--accordion-border-color: var(--muted-border-color);
--accordion-active-summary-color: var(--primary);
--accordion-close-summary-color: var(--color);
--accordion-open-summary-color: var(--muted-color);
--card-background-color: #00000000;
--card-border-color: #00000000;
--card-box-shadow:
0.0145rem 0.029rem 0.174rem rgba(0, 0, 0, 0),
0.0335rem 0.067rem 0.402rem rgba(0, 0, 0, 0),
0.0625rem 0.125rem 0.75rem rgba(0, 0, 0, 0),
0.1125rem 0.225rem 1.35rem rgba(0, 0, 0, 0),
0.2085rem 0.417rem 2.502rem rgba(0, 0, 0, 0),
0.5rem 1rem 6rem rgba(0, 0, 0, 0),
0 0 0 0.0625rem rgba(0, 0, 0, 0);
--card-sectionning-background-color: #161616;
--dropdown-background-color: hsl(205deg, 30%, 15%);
--dropdown-border-color: #24333e;
--dropdown-box-shadow: var(--card-box-shadow);
--dropdown-color: var(--color);
--dropdown-hover-background-color: #16161699;
--modal-overlay-background-color: rgba(36, 51, 62, 0.8);
--progress-background-color: #161616;
--progress-color: var(--primary);
--loading-spinner-opacity: 0.5;
--tooltip-background-color: var(--contrast);
--tooltip-color: var(--contrast-inverse);
--icon-checkbox: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
--icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
--icon-chevron-button: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
--icon-chevron-button-inverse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(0, 0, 0)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(115, 130, 140)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
--icon-date: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
--icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(183, 28, 28)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
--icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
--icon-time: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(162, 175, 185)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");
--icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(46, 125, 50)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
color-scheme: dark;
}
* {
overflow-y: scroll;
scrollbar-width: none;
-ms-overflow-style: none;
font-family: "HeadUpDaisy";
font-size: 16px;
}
::-webkit-scrollbar {
width: 0;
height: 0;
}
h1, h3, h5 {
font-family: "HeadUpDaisy";
font-size: 16px;
}
p {
font-size: 16px;
}
body {
height: 100vh;
display: grid;
}
article {
padding: 0;
overflow: hidden;
}
article div {
padding: 1rem;
}
#cover {
position: fixed;
display: grid;
justify-items: center;
align-items: center;
height: 100%;
width: 100%;
top: 0;
left: 0;
background: #000;
z-index: 999;
font-size: 60px;
text-align: center;
color: #fff;
}
#covercontainer {
width: 50vh;
justify-content: center;
align-content: center;
}
#whiteout {
position: fixed;
height: 100%;
width: 100%;
top: 0;
left: 0;
background: #fff;
z-index: 99;
font-size: 60px;
text-align: center;
color: #fff;
opacity: 0
}
.footer_style {
position: absolute;
bottom: 0;
left: 0;
height: 5ch;
padding: 2ch;
font-size: 18px;
}
.footer_center {
display: grid;
align-items: center;
justify-content: center;
}
@font-face {
font-family: "HeadUpDaisy";
src: url("HeadUpDaisy.ttf") format("truetype");
}
.button {
font-family: "HeadUpDaisy";
background-color: #292929;
border: none;
color: white;
padding: 12px 12px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
max-width: 50%;
}
.inactivelink {
pointer-events: none;
cursor: default;
}

4
css/pico.css Normal file

File diff suppressed because one or more lines are too long

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
images/flag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
images/france.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

BIN
images/meme.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

90
index.html Normal file
View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html lang="en">
<!-- Access notice:
- French people may not view this document. Violating this will result in immediate death.
- If you are associated with datae, his patreon, his cat, his nephew or his kitchen, you will be killed through the monitor using exclusive CIA technology.
-->
<head>
<meta charset="utf-8" />
<link rel="icon" href="./favicon.ico" />
<title>Beatrun</title>
<meta content="Beatrun Leak" property="og:title" />
<meta content="Enjoy the most up-to-date, free beatrun build fresh out of datae's ass. Malware free!!" property="og:description" />
<meta content="https://beatrun.ru" property="og:url" />
<meta content="#808080" data-react-helmet="true" name="theme-color" />
<link rel='stylesheet' href='./css/pico.css'>
<link rel='stylesheet' href='./css/main.css'>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" />
<meta name="viewport" content="width=device-width" />
<meta http-equiv="content-security-policy" content="">
<link rel="modulepreload" href="./_app/immutable/start-1d7bffac.js">
<link rel="modulepreload" href="./_app/immutable/chunks/index-1f5fb370.js">
<link rel="modulepreload" href="./_app/immutable/chunks/singletons-b768face.js">
<link rel="modulepreload" href="./_app/immutable/components/layout.svelte-81b25a9c.js">
<link rel="modulepreload" href="./_app/immutable/modules/pages/_layout.js-9cbb603b.js">
<link rel="modulepreload" href="./_app/immutable/chunks/_layout-da46b06b.js">
<link rel="modulepreload" href="./_app/immutable/components/pages/_page.svelte-7d3b4c8a.js">
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">
<img style="position: absolute; left: 0; bottom: 0; z-index: 999; max-width: 20%; max-height: 20%" src="/images/france.gif" alt="datae">
<video style="position: absolute; right: 0; bottom: 0; z-index: 999; max-width: 20%; max-height: 20%" muted loop preload="none" id="amen"><source src="/media/ilovepiracyamenbreak.mp4" type="video/mp4"></video>
<div id="nav_content"><header><nav class="container"><ul><li><a href="#" style="width: 50px"><img src="/images/flag.png"></a></li>
<li></li>
<li><a href="#" class="inactivelink"><b style="font-size: 14px !important;">DDOS Attacks blocked: 12<br>datae has a weak booter cuz fbi seized the good ones... so sad</b></a></li></ul>
<ul><li><a href="https://discord.gg/93Psubbgsg"><b>Discord</b></a></li>
<li><a href="https://courses.beatrun.ru"><b>Courses</b></a></li>
<li><a href="#"><b>Wall Of Shame</b></a></li></ul></nav></header></div>
<main class="container"><div><article><hgroup><h1 align="center">Beatrun</h1>
<h3 align="center">Unofficial release of beatrun made by our beloved GMOD paster, transphobe and super mega racist datae.<br>Below is a list where you can get the latest cracked version of beatrun, free of charge, free of malware and modules. Including only pure lua code.</h3></hgroup>
<div class="grid" align="center"><div><hgroup><h5>Github (relaxtakenotes edition)</h5>
<h3>This version is the closest to vanilla, including only minor changes and fixes.</h3></hgroup>
<a class="button" href="https://github.com/jeffthekillerz/beatrun" role="button">Go</a></div>
<div><hgroup><h5>Github (jonnybro edition)</h5>
<h3>Maintained by a different person and much more actively. Includes additional features and way more fixes. This is recommended!</h3></hgroup>
<a class="button" href="https://github.com/JonnyBro/beatrun" role="button">Go</a></div></div></article></div></main>
<div id="footer_content" style="display: contents;"><footer class="container-fluid footer_style footer_center" style="overflow:hidden;"><p style="color: #505050; font-size: 1ch">Now playing: dylan85#6786 - Sea Shanty Remix<br>France lost | Coperight @ relaxtakenotes / el1s1on 2069</p></footer></div>
<div id="whiteout"></div>
<div id="cover"><div id="covercontainer"><p>
<br><br>
<button class="button">Mute music</button>
<button class="button">Keep music</button></p></div></div>
<script type="module" data-sveltekit-hydrate="15wyrw2">
import { start } from "./_app/immutable/start-1d7bffac.js";
start({
env: {},
paths: {"assets":"","base":""},
target: document.querySelector('[data-sveltekit-hydrate="15wyrw2"]').parentNode,
version: "1686129339681",
hydrate: {
node_ids: [0, 2],
data: [null,null],
form: null,
error: null
}
});
</script>
</div>
</body>
<!-- Jesus said "I will rebuild this temple in three days." I could make a compiler in 3 days. -->
</html>

341
install Normal file
View file

@ -0,0 +1,341 @@
Enum State
{
Start = 0;
Property = 1;
Object = 2;
Conditional = 3;
Finished = 4;
Closed = 5
};
Class VdfDeserializer
{
[PSCustomObject] Deserialize([string]$vdfContent)
{
if([string]::IsNullOrWhiteSpace($vdfContent)) {
throw 'Mandatory argument $vdfContent must be a non-empty, non-whitespace object of type [string]';
}
[System.IO.TextReader]$reader = [System.IO.StringReader]::new($vdfContent);
return $this.Deserialize($reader);
}
[PSCustomObject] Deserialize([System.IO.TextReader]$txtReader)
{
if( !$txtReader ){
throw 'Mandatory arguments $textReader missing.';
}
$vdfReader = [VdfTextReader]::new($txtReader);
$result = [PSCustomObject]@{ };
try
{
if (!$vdfReader.ReadToken())
{
throw "Incomplete VDF data.";
}
$prop = $this.ReadProperty($vdfReader);
Add-Member -InputObject $result -MemberType NoteProperty -Name $prop.Key -Value $prop.Value;
}
finally
{
if($vdfReader)
{
$vdfReader.Close();
}
}
return $result;
}
[hashtable] ReadProperty([VdfTextReader]$vdfReader)
{
$key=$vdfReader.Value;
if (!$vdfReader.ReadToken())
{
throw "Incomplete VDF data.";
}
if ($vdfReader.CurrentState -eq [State]::Property)
{
$result = @{
Key = $key;
Value = $vdfReader.Value;
}
}
else
{
$result = @{
Key = $key;
Value = $this.ReadObject($vdfReader);
}
}
return $result;
}
[PSCustomObject] ReadObject([VdfTextReader]$vdfReader)
{
$result = [PSCustomObject]@{ };
if (!$vdfReader.ReadToken())
{
throw "Incomplete VDF data.";
}
while ( ($vdfReader.CurrentState -ne [State]::Object) -or ($vdfReader.Value -ne "}"))
{
[hashtable]$prop = $this.ReadProperty($vdfReader);
Add-Member -InputObject $result -MemberType NoteProperty -Name $prop.Key -Value $prop.Value;
if (!$vdfReader.ReadToken())
{
throw "Incomplete VDF data.";
}
}
return $result;
}
}
Class VdfTextReader
{
[string]$Value;
[State]$CurrentState;
hidden [ValidateNotNull()][System.IO.TextReader]$_reader;
hidden [ValidateNotNull()][char[]]$_charBuffer=;
hidden [ValidateNotNull()][char[]]$_tokenBuffer=;
hidden [int32]$_charPos;
hidden [int32]$_charsLen;
hidden [int32]$_tokensize;
hidden [bool]$_isQuoted;
VdfTextReader([System.IO.TextReader]$txtReader)
{
if( !$txtReader ){
throw "Mandatory arguments `$textReader missing.";
}
$this._reader = $txtReader;
$this._charBuffer=[char[]]::new(1024);
$this._tokenBuffer=[char[]]::new(4096);
$this._charPos=0;
$this._charsLen=0;
$this._tokensize=0;
$this._isQuoted=$false;
$this.Value="";
$this.CurrentState=[State]::Start;
}
[bool] ReadToken()
{
if (!$this.SeekToken())
{
return $false;
}
$this._tokenSize = 0;
while($this.EnsureBuffer())
{
[char]$curChar = $this._charBuffer[$this._charPos];
#No special treatment for escape characters
#region Quote
if ($curChar -eq '"' -or (!$this._isQuoted -and [Char]::IsWhiteSpace($curChar)))
{
$this.Value = [string]::new($this._tokenBuffer, 0, $this._tokenSize);
$this.CurrentState = [State]::Property;
$this._charPos++;
return $true;
}
#endregion Quote
#region Object Start/End
if (($curChar -eq '{') -or ($curChar -eq '}'))
{
if ($this._isQuoted)
{
$this._tokenBuffer[$this._tokenSize++] = $curChar;
$this._charPos++;
continue;
}
elseif ($this._tokenSize -ne 0)
{
$this.Value = [string]::new($this._tokenBuffer, 0, $this._tokenSize);
$this.CurrentState = [State]::Property;
return $true;
}
else
{
$this.Value = $curChar.ToString();
$this.CurrentState = [State]::Object;
$this._charPos++;
return $true;
}
}
#endregion Object Start/End
#region Long Token
$this._tokenBuffer[$this._tokenSize++] = $curChar;
$this._charPos++;
#endregion Long Token
}
return $false;
}
[void] Close()
{
$this.CurrentState = [State]::Closed;
}
hidden [bool] SeekToken()
{
while($this.EnsureBuffer())
{
# Skip Whitespace
if( [char]::IsWhiteSpace($this._charBuffer[$this._charPos]) )
{
$this._charPos++;
continue;
}
# Token
if ($this._charBuffer[$this._charPos] -eq '"')
{
$this._isQuoted = $true;
$this._charPos++;
return $true;
}
# Comment
if ($this._charBuffer[$this._charPos] -eq '/')
{
$this.SeekNewLine();
$this._charPos++;
continue;
}
$this._isQuoted = $false;
return $true;
}
return $false;
}
hidden [bool] SeekNewLine()
{
while ($this.EnsureBuffer())
{
if ($this._charBuffer[++$this._charPos] == '\n')
{
return $true;
}
}
return $false;
}
hidden [bool]EnsureBuffer()
{
if($this._charPos -lt $this._charsLen -1)
{
return $true;
}
[int32] $remainingChars = $this._charsLen - $this._charPos;
$this._charBuffer[0] = $this._charBuffer[($this._charsLen - 1) * $remainingChars]; #A bit of mathgic to improve performance by avoiding a conditional.;
$this._charsLen = $this._reader.Read($this._charBuffer, $remainingChars, 1024 - $remainingChars) + $remainingChars;
$this._charPos = 0;
return ($this._charsLen -ne 0);
}
}
function GetCount($thing) {
$aux = $($thing | Get-Member -MemberType NoteProperty);
$count = 0;
if ( $aux -eq $null ) {
$count = 0;
} elseif ( $aux -is [PSCustomObject] ) {
$count = 1;
} else {
$count = $aux.Count;
}
return $count;
}
$VDF = [VdfDeserializer]::new();
$SteamPath = Get-ItemProperty -Path HKLM:/SOFTWARE/WOW6432Node/Valve/Steam;
$SteamPath = $SteamPath.InstallPath;
$SteamPath = $SteamPath.ToString();
Write-Host Looking for steam libraries...;
$LibraryFoldersVDF = $SteamPath + "/steamapps/libraryfolders.vdf";
$LibrariesRaw = Get-Content $LibraryFoldersVDF;
$LibrariesVDF = $VDF.Deserialize($LibrariesRaw);
Write-Host Done!;
$libcount = GetCount($LibrariesVDF.libraryfolders);
for ($i = 0; $i -lt $libcount; $i++) {
$Install = $LibrariesVDF.libraryfolders.$i;
$GMODInstalled = $Install.apps.4000;
if ($GMODInstalled) {
$GMODPath = $Install.path + "\\steamapps\\common\\GarrysMod";
$AddonsPath = $GMODPath + "\\garrysmod\\addons";
$_text = "Do you want to install in this path? It will completely wipe the previous beatrun install if you had one! `n" + $GMODPath + " (y/n)";
$GMODConfirmation = Read-Host $_text;
if ($GMODConfirmation -eq 'y') {
$TempPath = $GMODPath + "\\temp\\";
$ZIPPath = $TempPath + "beatrun.zip";
$FolderPath = $TempPath + "beatrun";
$FolderMainPath = $TempPath + "beatrun-main";
(New-Item -ItemType Directory -Path $TempPath) | out-null;
Write-Host Downloading the archive...;
(New-Object Net.WebClient).DownloadFile("https://github.com/JonnyBro/beatrun/archive/refs/heads/main.zip", $ZIPPath);
Write-Host Done! Now unarchiving it.;
Expand-Archive $ZIPPath $TempPath -Force;
Write-Host Done!;
Rename-Item $FolderMainPath $FolderPath;
Remove-Item $ZIPPath;
$ModulesPath = $FolderPath + "\\lua\\*";
$NewModulesPath = $GMODPath + "\\garrysmod\\lua\\";
Copy-Item -Path $ModulesPath -Destination $NewModulesPath -Force -Recurse;
$AddonPath = $FolderPath + "\\beatrun";
$NewAddonPath = $AddonsPath + "\\beatrun";
if ((Test-Path $NewAddonPath) -eq $true) {
Remove-Item $NewAddonPath -Force -Recurse;
}
Move-Item -Path $AddonPath -Destination $NewAddonPath;
Remove-Item $TempPath -Force -Recurse;
Write-Host Beatrun Installed!;
$confirmation = Read-Host "Do you want custom animations? (y/n):";
if ($confirmation -eq 'y') {
Set-Location -Path $NewAddonPath;
$AnimChangerPath = $NewAddonPath + "\\BeatrunAnimInstaller.exe";
Start-Process -FilePath $AnimChangerPath -WorkingDirectory $NewAddonPath
}
}
}
}

BIN
media/canibitch.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
media/seashanty_dylan85.mp3 Normal file

Binary file not shown.

BIN
shame/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

BIN
shame/10.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
shame/11.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
shame/12.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
shame/13.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
shame/14.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
shame/15.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

BIN
shame/16.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
shame/17.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
shame/18.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
shame/19.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
shame/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
shame/20.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

BIN
shame/21.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
shame/22.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
shame/23.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
shame/24.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
shame/25.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

BIN
shame/26.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
shame/27.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
shame/28.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
shame/29.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
shame/3.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
shame/30.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
shame/31.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
shame/32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
shame/33.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 KiB

BIN
shame/34.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 KiB

BIN
shame/35.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
shame/36.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
shame/37.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
shame/38.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
shame/39.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
shame/4.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
shame/40.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
shame/41.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
shame/42.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
shame/43.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

BIN
shame/44.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
shame/45.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
shame/46.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
shame/47.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
shame/48.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
shame/49.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
shame/5.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
shame/50.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
shame/51.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
shame/52.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
shame/6.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
shame/7.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
shame/8.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
shame/9.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

86
vite-manifest.json Normal file
View file

@ -0,0 +1,86 @@
{
".svelte-kit/generated/nodes/2.js": {
"file": "_app/immutable/chunks/2-f812528f.js",
"src": ".svelte-kit/generated/nodes/2.js",
"isDynamicEntry": true,
"imports": [
"src/routes/+page.svelte"
]
},
"src/routes/+layout.js": {
"file": "_app/immutable/modules/pages/_layout.js-9cbb603b.js",
"src": "src/routes/+layout.js",
"isEntry": true,
"imports": [
"__layout-da46b06b.js"
]
},
"__layout-da46b06b.js": {
"file": "_app/immutable/chunks/_layout-da46b06b.js"
},
".svelte-kit/generated/nodes/1.js": {
"file": "_app/immutable/chunks/1-93107ace.js",
"src": ".svelte-kit/generated/nodes/1.js",
"isDynamicEntry": true,
"imports": [
"node_modules/@sveltejs/kit/src/runtime/components/error.svelte"
]
},
".svelte-kit/generated/nodes/0.js": {
"file": "_app/immutable/chunks/0-45185e62.js",
"src": ".svelte-kit/generated/nodes/0.js",
"isDynamicEntry": true,
"imports": [
"__layout-da46b06b.js",
"node_modules/@sveltejs/kit/src/runtime/components/layout.svelte"
]
},
"_singletons-b768face.js": {
"file": "_app/immutable/chunks/singletons-b768face.js",
"imports": [
"_index-1f5fb370.js"
]
},
"node_modules/@sveltejs/kit/src/runtime/components/error.svelte": {
"file": "_app/immutable/components/error.svelte-cf040f97.js",
"src": "node_modules/@sveltejs/kit/src/runtime/components/error.svelte",
"isEntry": true,
"imports": [
"_index-1f5fb370.js",
"_singletons-b768face.js"
]
},
"node_modules/@sveltejs/kit/src/runtime/components/layout.svelte": {
"file": "_app/immutable/components/layout.svelte-81b25a9c.js",
"src": "node_modules/@sveltejs/kit/src/runtime/components/layout.svelte",
"isEntry": true,
"imports": [
"_index-1f5fb370.js"
]
},
"_index-1f5fb370.js": {
"file": "_app/immutable/chunks/index-1f5fb370.js"
},
"src/routes/+page.svelte": {
"file": "_app/immutable/components/pages/_page.svelte-7d3b4c8a.js",
"src": "src/routes/+page.svelte",
"isEntry": true,
"imports": [
"_index-1f5fb370.js"
]
},
"node_modules/@sveltejs/kit/src/runtime/client/start.js": {
"file": "_app/immutable/start-1d7bffac.js",
"src": "node_modules/@sveltejs/kit/src/runtime/client/start.js",
"isEntry": true,
"imports": [
"_index-1f5fb370.js",
"_singletons-b768face.js"
],
"dynamicImports": [
".svelte-kit/generated/nodes/0.js",
".svelte-kit/generated/nodes/1.js",
".svelte-kit/generated/nodes/2.js"
]
}
}