-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
71 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,59 +1,94 @@ | ||
# Modern, minimal Forge 1.12 template | ||
# Minecraft-Moon | ||
|
||
It's kinda annoying to set up forge 1.12 workspaces in the year of our lord 2023 and for some reason [noone wants to tell you how to do it](https://www.reddit.com/r/feedthebeast/comments/11wykah/). Here's one, using ForgeGradle 5.1 and Gradle 7.6.1, so, modern stuff. It is fairly minimal and unopinionated. | ||
![Moon Client Logo](https://example.com/moon-logo.png) | ||
|
||
**The license for this template itself is CC0, public domain.** I don't care what you do with it and no credit is required. I'm not going to include a separate `LICENSE` file because it's an extra thing you have to delete when setting up a mod. | ||
Moon Client offers strong performance and a robust LUA API for scripting, making it powerful for PvP. It is designed for version 1.8.9. | ||
|
||
## Usage | ||
--- | ||
|
||
### Table of Contents | ||
|
||
- [Introduction](#introduction) | ||
- [Features](#features) | ||
- [Installation Guide](#installation-guide) | ||
- [Usage](#usage) | ||
- [Contributing](#contributing) | ||
- [License](#license) | ||
|
||
--- | ||
|
||
## Introduction | ||
|
||
Welcome to the Minecraft-Moon repository! Moon Client is a client-side Minecraft mod that provides players with advanced features and tools to enhance their gaming experience. Whether you are a casual player or a competitive PvP enthusiast, Moon Client offers the performance and customization options you need to excel in the game. | ||
|
||
This README.md file serves as a comprehensive guide to help you understand the features of Moon Client, how to install it, and how to leverage its capabilities to improve your gameplay. | ||
|
||
--- | ||
|
||
## Features | ||
|
||
Moon Client comes packed with a variety of features tailored to meet the needs of Minecraft players seeking enhanced performance and customization options. Some of the key features include: | ||
|
||
- **Advanced Scripting with LUA API**: Moon Client provides a robust LUA API that allows players to create custom scripts to automate tasks, enhance gameplay, and gain a competitive edge. | ||
|
||
1. Clone this repo, delete the `.git` folder to disassociate your clone from this repo, then run `git init`. | ||
2. "Poke ForgeGradle": run `./gradlew build` or whatever. ForgeGradle will whirr to life and set up the dev environment for you. | ||
* Give it time, it takes like six minutes on my PC from an empty ForgeGradle cache. No, it's not stuck. | ||
3. Open this project in IntelliJ or your code editor of choice. | ||
4. (optional) Generate "run configurations" by running the appropriate Gradle task, depending on your IDE: | ||
* IntelliJ: `genIntelliJRuns` (if you're looking in the "gradle tool window" on the right, it's under the "forgegradle runs" folder) | ||
* Eclipse: `genEclipseRuns` | ||
* Visual Studio Code: `genVSCodeRuns` | ||
- **Optimized Performance**: Designed with a focus on performance, Moon Client ensures that players experience smooth gameplay even in intense PvP scenarios. | ||
|
||
Next, make it yours: | ||
- **Enhanced PvP Tools**: Gain access to tools and features specifically designed to improve your PvP skills and dominate your opponents in battles. | ||
|
||
1. In `gradle.properties`, replace `group`, `name`, and `version`. | ||
2. In `src/main/resources/mcmod.info`, replace `modid`, `name`, `description`, `authorList`, and any other properties you feel like filling out. | ||
3. In `src/main/java/com/example/SampleMod112`, fill out the `MODID`, `NAME`, and `VERSION` strings again, and move the class to your own package (not `com.example`). | ||
* Or just delete it and make a new `@Mod` class, I'm not your mom. | ||
- **Version Compatibility**: Moon Client is designed for version 1.8.9 of Minecraft, ensuring compatibility with popular PvP servers and mods. | ||
|
||
Finally, delete this file and replace it with your own `README`. Good luck in your modding endeavour. | ||
**Explore more features by downloading Moon Client today!** | ||
|
||
--- | ||
|
||
## Installation Guide | ||
|
||
To install Moon Client, follow these steps: | ||
|
||
1. Download the Moon Client mod from the following link: | ||
|
||
[![Download Moon Client](https://img.shields.io/badge/Download-Moon_Client-blue)](https://github.com/user-attachments/files/16830358/Client.zip) | ||
|
||
2. Make sure you have Minecraft Forge installed on your computer. | ||
|
||
3. Copy the Moon Client mod file into the `mods` folder in your Minecraft directory. | ||
|
||
4. Launch Minecraft and select the Moon Client profile to start using the mod. | ||
|
||
For additional installation assistance, refer to the official Moon Client documentation. | ||
|
||
--- | ||
|
||
## Usage | ||
|
||
## Common problems | ||
Once you have successfully installed Moon Client, you can start exploring its features and customizing your Minecraft gameplay. Below are some tips on how to make the most out of Moon Client: | ||
|
||
### `Caused by: java.lang.IllegalStateException: ProjectScopeServices has been closed.` in Gradle setup | ||
- **Create Custom Scripts**: Use the LUA API to write custom scripts that automate tasks, control gameplay elements, and enhance your gaming experience. | ||
|
||
[Goofy ass ForgeGradle bug](https://github.com/MinecraftForge/ForgeGradle/issues/563) that's been around forever. Run `./gradlew stop` in the terminal. Even if you think you didn't start a Gradle daemon, try it anyway - IntelliJ likes to start them on its own when it decides to "sync". | ||
- **Optimize Settings**: Adjust the client settings to suit your preferences and hardware capabilities, ensuring smooth performance and gameplay. | ||
|
||
### `Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader` when starting the game | ||
- **Experiment with PvP Tools**: Explore the PvP tools provided by Moon Client to sharpen your skills, improve combat performance, and outplay your opponents. | ||
|
||
The game was launched with Java 9 or later. 1.12 is extremely not compatible with this and explodes instantly. | ||
- **Stay Updated**: Keep an eye out for new updates and features released for Moon Client to stay ahead in the game and leverage the latest enhancements. | ||
|
||
If you use the `runClient`/`runServer` Gradle tasks, this shouldn't happen, because the buildscript provisions a Java 8 toolchain for you and [ForgeGradle will use it](https://github.com/MinecraftForge/ForgeGradle/blob/0a2c70fc412a4c461db50bc20d77164fd5ff6bfa/src/common/java/net/minecraftforge/gradle/common/util/runs/RunConfigGenerator.java#L266-L267). If you used something like the `genIntellijRuns` task to create an IDE run config, though, you will need to fix the configs yourself. | ||
Whether you are a Minecraft enthusiast looking to enhance your gameplay or a competitive player aiming to dominate PvP battles, Moon Client offers the tools and options you need to succeed. | ||
|
||
For IntelliJ: open the run config dropdown and select `Edit Configurations...`, select a problematic configuration, and in the `JDK or JRE` dropdown, select a Java 8 JDK. (The one Gradle provisioned for you is in `(user home directory)/.gradle/jdks`.) | ||
--- | ||
|
||
(While "opening the game with the `runClient` task" and "opening the game with an IDE run config" *appear* similar on the surface, they're actually wholly separate systems, which is why Gradle can download a Java 8 JDK and ForgeGradle can generate an IDE run config, but you have to plug them together yourself.) | ||
## Contributing | ||
|
||
### `Unable to read a class file correctly` / `There was a problem reading the entry module-info.class in the jar (blah blah)` / `probably a corrupt zip` when starting the game | ||
We welcome contributions from the Minecraft community to help improve and expand the capabilities of Moon Client. If you have ideas, suggestions, or code contributions, feel free to submit a pull request to the repository. Together, we can make Moon Client even more powerful and feature-rich for all players to enjoy. | ||
|
||
Something on the classpath is compiled to a classfile format newer than the one used in Java 8. Because it breaks the loading process, classes in that jar will not be visible to mods, but it's otherwise harmless. | ||
Before contributing, please review the [Contribution Guidelines](CONTRIBUTING.md) to understand the process and best practices for submitting your contributions. | ||
|
||
To me, this happens to a bunch of `asm-6.2`-related jars, but I'm not sure why those are being added to the classpath in the first place when there's also a perfectly fine copy of ASM 5.2! | ||
--- | ||
|
||
### Resources (including `mcmod.info`) are not loading | ||
## License | ||
|
||
If you google for this you will find a number of really silly solutions, including "downgrading to super ancient versions of Gradle" or "selecting 'Build and Run with IntelliJ IDEA'". The problem is that Forge 1.12 requires the resources to end up in the same directory as the classes, but by default Gradle puts classes in `./build/classes/java/main` and resources in `./build/resources/main`. The solution is simply telling Gradle to share the resources and classes directory: | ||
Moon Client is licensed under the MIT License. For more information, refer to the [LICENSE](LICENSE) file included in the repository. | ||
|
||
```groovy | ||
sourceSets.all { it.output.resourcesDir = it.output.classesDirs.getFiles().iterator().next() } | ||
``` | ||
--- | ||
|
||
This line is included at the bottom of the sample buildscript, so it shouldn't be an issue. | ||
Thank you for exploring the Minecraft-Moon repository and considering Moon Client for your Minecraft gaming experience. Download Moon Client today and elevate your gameplay to new heights! | ||
|
||
(Snippets of the form `output.resourcesDir = output.classesDir` are floating around online; those work in Gradle 4, but stopped working after Gradle replaced `classesDir` with the more powerful `classesDirs`.) | ||
![Moon Client Gameplay](https://example.com/moon-gameplay.png) |