The public client components of the Opai project. Allow you to make your own extensions.
Example implementation: example-extension
Publish Your Extension on Opai Marketplace™
Make your extension available for other players to download by publishing it on the Opai Marketplace™. Please follow the steps below:
- Join this Organization: Join the organization.
- Create a Public Repository: Within the organization, create a new public repository for your extension.
- Create a Release: Navigate to your repository's releases section and create a new release.
- Upload Your Extension: Add your extension's JAR file as an asset in the release.
- Add Repository Topic: Include
opai-extensionin your repository's topics. - Wait for Publication: Allow up to 5 minutes for our server to automatically detect and publish your extension to the Opai Marketplace™.
- Develop Directly in the Repository: Push your code to the repository for continuous development and version control.
- Add a README.md File: Create a
README.mdfile in your repository. Its content will be displayed on the Marketplace to provide users with important details about your extension, such as features, screenshot, and usage examples. - Collaborate with Others: Invite other users in the organization to contribute to your repository.
- Put the extension jar into the
%APPDATA%\Opai\extensionsfolder - Re-launch client
- Fork/clone template workspace
- Import to your IDE, sync maven dependencies.
- Client module, command, widget.
- Player
- Other Entity
- World Client
- Packet Control
You can use the following maven dependencies directly, no need to export to the final jar (included in the client)
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.0.23.Final</version>
</dependency>
<dependency>
<groupId>com.mojang</groupId>
<artifactId>patchy</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>net.sf.jopt-simple</groupId>
<artifactId>jopt-simple</artifactId>
<version>4.6</version>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>lwjgl</artifactId>
<version>2.9.4-nightly</version>
</dependency>
<dependency>
<groupId>org.lwjgl</groupId>
<artifactId>util</artifactId>
<version>2.9.4-nightly</version>
</dependency>
<dependency>
<groupId>net.java.jinput</groupId>
<artifactId>jinput</artifactId>
<version>2.0.5</version>
</dependency>
<dependency>
<groupId>com.mojang</groupId>
<artifactId>icu4j-core-mojang</artifactId>
<version>51.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.2</version>
</dependency>
<dependency>
<groupId>oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.10.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>5.10.0</version>
</dependency>
<dependency>
<groupId>net.java.jutils</groupId>
<artifactId>jutils</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.8.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.0-beta9</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0-beta9</version>
</dependency>
<dependency>
<groupId>tv.twitch</groupId>
<artifactId>twitch</artifactId>
<version>6.5</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>17.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>We currently do not accept contributions. But if you have any ideas/issue, please open an issue were happy to discuss it.