Skip to content

Commit d79a79d

Browse files
committed
Project generator, new submit link and remove 3 feature requirement.
1 parent 14b0da9 commit d79a79d

13 files changed

Lines changed: 307 additions & 144 deletions

File tree

bun.lockb

4.41 KB
Binary file not shown.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"@gsap/react": "^2.1.1",
1414
"airtable": "^0.12.2",
1515
"gsap": "^3.12.5",
16+
"jszip": "^3.10.1",
1617
"next": "15.4.8",
1718
"react": "19.0.1",
1819
"react-dom": "19.0.1"

public/images/project-creation.png

-114 KB
Binary file not shown.

src/app/gallery/page.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import Link from "next/link";
22
import GalleryEntry from "~/components/GalleryEntry";
33
import TiledDiv from "~/components/TiledDiv";
44

5+
//TODO table changed, merge data
56
const api_url =
67
"https://api2.hackclub.com/v0.1/MC%20Modding/Submissions?select={%22filterByFormula%22:%22{Status}=%27Approved%27%22}";
78

src/app/guide/mixin/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ export default function GuidePage() {
184184
</p>
185185
<p>
186186
If you need to access a super class you can extend it in your mixin
187-
(Make sure your it is abstract!).
187+
(Make sure it is abstract!).
188188
</p>
189189
<h4>Additional reading</h4>
190190
<ul>

src/app/guide/page.tsx

Lines changed: 17 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Link from "next/link";
2+
import ProjectGenerator from "~/components/ProjectGenerator";
23
import SplashText from "~/components/SplashText";
34
import TiledDiv from "~/components/TiledDiv";
45

@@ -24,7 +25,6 @@ export default function GuidePage() {
2425
style={{
2526
marginBottom: "1rem",
2627
width: "100%",
27-
maxWidth: "90vw",
2828
}}>
2929
<h2>No Experience?</h2>
3030
<p>
@@ -63,16 +63,14 @@ export default function GuidePage() {
6363
</a>
6464
.
6565
</p>
66-
<p>
67-
Make sure to download the Community Edition, or apply for{" "}
68-
<a href="https://www.jetbrains.com/academy/student-pack/">
69-
the student pack
70-
</a>
71-
.
72-
</p>
7366
<i style={{ fontSize: "1rem" }}>
7467
You can use another IDE but IntelliJ is by far the best, especially
75-
for mixins.
68+
for mixins. <br /> Tip: You can get Ultimate edition for free with
69+
the{" "}
70+
<a href="https://www.jetbrains.com/academy/student-pack">
71+
student pack
72+
</a>
73+
.
7674
</i>
7775
<p>
7876
After it has been downloaded onto your computer, open up the
@@ -94,6 +92,12 @@ export default function GuidePage() {
9492
and setup Hackatime following the instructions on the website if you
9593
haven't already.
9694
</p>
95+
<i style={{ fontSize: "1rem" }}>
96+
Wakatime is the plugin you should install. Hackatime is our custom
97+
server that recieves the data it sends. If you get asked for an API
98+
key use that of hackatime, you never need to create a wakatime
99+
account.
100+
</i>
97101
<p>
98102
To developing Minecraft mods, we are going to use the{" "}
99103
<a href="https://fabricmc.net/">Fabric mod loader</a> and its API.
@@ -111,44 +115,12 @@ export default function GuidePage() {
111115
are coming from Forge, you will notice that Fabric is a lot simpler
112116
and flexible making the switch very easy.
113117
</i>
118+
<p>Finally, it's time to create a new project!</p>
119+
<ProjectGenerator />
114120
<p>
115-
Finally, it's time to create a new project! Click on the "New
116-
Project" button, and select "Minecraft" on the left side. Choose
117-
"JDK 21". (If you can't see the option, download the JDK{" "}
118-
<a href="https://adoptium.net/temurin/releases/?package=jdk&version=21">
119-
here
120-
</a>
121-
!)
121+
Extract your zip file, open the folder with Intellij and take a look
122+
at your beautiful mod.
122123
</p>
123-
<p>
124-
You can change the name and ids to whatever you like except for
125-
something generic like "hackcraft" (remember to scroll down and
126-
change the group id too!), then select "Fabric" in "Templates" and
127-
enable Git. Your command creation dialogue should look like this:
128-
</p>
129-
<img
130-
src="/images/project-creation.png"
131-
alt="Project Creation Pic"
132-
width="100%"
133-
/>
134-
<p>
135-
If you don't know what datagen or split sources are, disable them.
136-
If you don't care about licensing MIT is a good option.
137-
</p>
138-
<p>
139-
Then, create the project. Look at what you've done: you've just
140-
setup the base of your fabric project!
141-
</p>
142-
<p style={{ fontSize: "1rem" }}>
143-
<i>
144-
Note: If you see the error "Could not resolve
145-
net.fabricmc:fabric-loom:1.10-SNAPSHOT.", go to the file gradle
146-
&gt; wrapper &gt; gradle-wrapper.properties and change the
147-
distribution URL to
148-
"https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip".
149-
</i>
150-
</p>
151-
152124
<p>
153125
Now, lets launch the game for the first time! You can find the
154126
launch profiles in the top-right corner of the window. Click the

src/app/guide/submit/page.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,9 @@ export default function Submit() {
3535
development environment.
3636
</li>
3737
<li>
38-
Make sure your mod has the necessary 3 features, "works on fabric
39-
1.21.11" or similar is <b>not</b> a feature. Anything similar to a
40-
tutorial doesn't count.
38+
Check if your mod is survival-friendly and everything that should
39+
be obtainable actually is.
4140
</li>
42-
<li>Check if your mod is survival-friendly.</li>
4341
<li>
4442
Ensure you are in #mc-modding so you can receive your prize.
4543
</li>
@@ -131,7 +129,7 @@ export default function Submit() {
131129
<a
132130
className="hoverable"
133131
id="form-link"
134-
href="https://submit.hackclub.com/hackcraft"
132+
href="https://submit.hackclub.com/hackcraft-ysws"
135133
target="_blank">
136134
Submit Now!
137135
</a>

src/app/page.tsx

Lines changed: 5 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -3,67 +3,6 @@ import SplashText from "~/components/SplashText";
33
import Link from "next/link";
44
import TiledDiv from "~/components/TiledDiv";
55

6-
const featuredMods = [
7-
"https://github.com/MelnCat/IncompleteCombustion",
8-
"https://modrinth.com/mod/cameratweaks",
9-
"https://modrinth.com/mod/2d-minecraft",
10-
"https://modrinth.com/mod/omnilook",
11-
"https://modrinth.com/mod/extra-ores-items",
12-
"https://modrinth.com/mod/magic-craft",
13-
"https://modrinth.com/mod/farmers-delight-kacchi",
14-
"https://modrinth.com/mod/portal-gun-mod",
15-
"https://modrinth.com/mod/skibidi-brainrot-mod",
16-
"https://modrinth.com/mod/villager-tower-mod",
17-
"https://modrinth.com/mod/night-vision-revamp",
18-
"https://modrinth.com/mod/skillsmod",
19-
"https://modrinth.com/mod/nuggetmod",
20-
"https://modrinth.com/mod/abyssium",
21-
"https://modrinth.com/mod/namemanager",
22-
"https://modrinth.com/mod/simplespotifycontroller",
23-
"https://modrinth.com/mod/mc-death-note-mod",
24-
"https://modrinth.com/mod/snowball-hole-filler",
25-
"https://modrinth.com/mod/not-apples",
26-
"https://modrinth.com/mod/big-ships",
27-
"https://modrinth.com/mod/player-pearls",
28-
"https://modrinth.com/mod/schrodingers-chest",
29-
"https://modrinth.com/mod/chrono-domain",
30-
"https://modrinth.com/mod/nibbles-deep-dark",
31-
"https://modrinth.com/mod/js-turret",
32-
"https://modrinth.com/mod/tecnogui",
33-
"https://modrinth.com/mod/aviros",
34-
"https://modrinth.com/mod/eatermod",
35-
"https://modrinth.com/mod/planecraft",
36-
"https://modrinth.com/mod/magic-wands",
37-
"https://modrinth.com/mod/onomatopoeia",
38-
"https://modrinth.com/mod/lets-go-gambling!",
39-
"https://modrinth.com/mod/simpleedits",
40-
"https://modrinth.com/mod/wakatime-mod",
41-
"https://modrinth.com/mod/mc-game-of-life-sim",
42-
"https://modrinth.com/mod/ferret-friends",
43-
"https://modrinth.com/plugin/voteupdate",
44-
"https://modrinth.com/mod/quick-f3",
45-
"https://modrinth.com/mod/echoes-of-time",
46-
"https://modrinth.com/mod/potato-perks",
47-
"https://modrinth.com/mod/server-playtime-manager",
48-
"https://modrinth.com/mod/explorie",
49-
"https://modrinth.com/mod/rainbow-wood",
50-
"https://modrinth.com/mod/chatdebug",
51-
"https://modrinth.com/plugin/world-border-expansion",
52-
"https://modrinth.com/mod/tecnomap",
53-
"https://modrinth.com/plugin/command-reporter",
54-
"https://modrinth.com/mod/railcraft",
55-
"https://modrinth.com/mod/gateway",
56-
"https://modrinth.com/plugin/mcgambling",
57-
"https://modrinth.com/mod/minecraft-rivals",
58-
"https://modrinth.com/mod/arsenal-and-anvil",
59-
"https://modrinth.com/mod/enderchestheadsup",
60-
"https://modrinth.com/mod/project-gorilla",
61-
"https://modrinth.com/mod/divinetowers",
62-
"https://modrinth.com/mod/studycraft",
63-
"https://modrinth.com/mod/chronoelegy",
64-
"https://modrinth.com/mod/mwhrd",
65-
];
66-
676
export default function HomePage() {
687
return (
698
<>
@@ -163,16 +102,9 @@ export default function HomePage() {
163102
<p className="player1">
164103
Join others as they create their own universes.
165104
</p>
166-
<div
167-
onClick={() =>
168-
open(
169-
featuredMods[Math.floor(Math.random() * featuredMods.length)],
170-
"_blank",
171-
)
172-
}
173-
style={{ cursor: "pointer", textDecoration: "underline" }}>
105+
<a href="/gallery" target="_blank">
174106
just like these mods.
175-
</div>
107+
</a>
176108
<h3>Check out the mods teens made last time!</h3>
177109
<video controls src="/video.mp4" width="100%" />
178110
<h3>Craft a mod...</h3>
@@ -199,15 +131,8 @@ export default function HomePage() {
199131
</p>
200132
<h3 id="feature">Place the blocks...</h3>
201133
<p>
202-
Create at least 3 features for your mod. A feature is a functional
203-
thing written in code that does something interesting in the game
204-
(at least 5 lines of code, JSON does not count). This can be a
205-
mixin, an item/block interaction, entity AI, rendering code, you
206-
name it! You can only count every feature once, so creating
207-
multiple things with similar features will only count as one
208-
feature. Anything you got from a tutorial or vanilla does{" "}
209-
<b>not</b> count. Blocks/items that don't do anything don't count
210-
either.
134+
Create a mod. Try to make something polished that is fun or cool
135+
that people actually want to download.
211136
</p>
212137
<h3>Get the game...</h3>
213138
<p>
@@ -218,7 +143,7 @@ export default function HomePage() {
218143
and share your source code to a platform like{" "}
219144
<a href="https://github.com/">GitHub</a> to get stickers and a
220145
game like minecraft or hytale or a server. On top of that if you
221-
get 200 downloads in the first month, you get{" "}
146+
get 300 downloads in the first month, you get{" "}
222147
<a href="https://www.terraria.org/">Terraria</a> for free!
223148
</p>
224149
<h2>FAQ</h2>

src/components/GalleryEntry.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export default function GalleryEntry({ info }: GalleryEntryProps) {
4444
onMouseLeave={hideTooltip}>
4545
{info["Short Description"] || info["Description"]}
4646
</p>
47-
<LazyVideo src={info["Demo video"]} />
47+
{info["Demo video"] && <LazyVideo src={info["Demo video"]} />}
4848
<br />
4949
<a href={info["Code link"]} target="_blank" rel="noopener noreferrer">
5050
Code

src/components/LazyVideo.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export default function LazyVideo({ src }: { src: string }) {
3333
<a href={src}>Video</a>
3434
) : src.includes("youtube.com") ? (
3535
<iframe
36-
style={{ width: "75%", aspectRatio: "16/9" }}
36+
style={{ width: "75%", aspectRatio: "16/9", border: "none" }}
3737
src={src}
3838
title="YouTube video player"
3939
allowFullScreen></iframe>

0 commit comments

Comments
 (0)