|
1 | | -# zetacore |
| 1 | +# ZetaCore |
2 | 2 |
|
3 | | -zetacore is the core library for plugins made by ZetaPlugins. |
| 3 | +ZetaCore is a lightweight Minecraft (Paper) plugin framework designed to streamline plugin development. It replaces verbose boilerplate with clean, annotation-based command and tab-completion registration. No more plugin.yml definitions. ZetaCore also provides consistent message formatting utilities, type-safe configuration mapped directly to Java classes, built-in localization support, simple but powerful dependency injection, and a collection of helpful utilities for modern Paper plugins. |
4 | 4 |
|
5 | | --> [javadocs](https://jd.zetacore.zetaplugins.com) |
| 5 | +## Features |
6 | 6 |
|
7 | | -## Overview |
| 7 | +- **Annotation-Based Command Registration**: Define commands and tab completions using annotations, eliminating the need for plugin.yml entries. |
| 8 | +- **Easier Command Arguments**: Simplified handling of command arguments with built-in parsers for common types. |
| 9 | +- **Type-Safe Configuration**: Map configuration files directly to Java classes for easy access and management. |
| 10 | +- **Localization Support**: Built-in support for multiple languages, making it easy to create multilingual plugins. |
| 11 | +- **Dependency Injection**: Simplifies the management of dependencies within your plugin. No more having tons of getters in your main class. |
| 12 | +- **Message Formatting Utilities**: Consistent and easy-to-use utilities for formatting messages sent to players. |
| 13 | +- **Utility Functions**: A collection of helpful utilities to simplify common tasks in Paper plugin development. |
| 14 | +- **Better PlaceholderAPI Integration**: Seamless integration with PlaceholderAPI for dynamic content in messages. |
8 | 15 |
|
9 | | -The **zetacore** project is organized into several packages, each responsible for a specific part of the library: |
| 16 | +## Getting Started |
10 | 17 |
|
11 | | -- **`commands`** – Core command framework. |
12 | | -- **`debug`** – Utilities for generating debug reports and communicating with `debug.zetaplugins.com`. |
13 | | -- **`services.bstats`** – Convenience wrapper for bStats metrics. |
14 | | -- **`services.commands`** – Components related to command registration. |
15 | | -- **`services.config`** – Tools for managing and reading configuration files. |
16 | | -- **`services.di`** – Dependency injection framework (annotations are found in `annotations`). |
17 | | -- **`services.events`** – Classes for registering and managing event listeners. |
18 | | -- **`services.localization`** – Localization utilities. |
19 | | -- **`services.messages`** – Message formatting utilities. |
20 | | -- **`services.updatechecker`** – Prebuilt update checker implementations. |
21 | | -- **`annotations`** – Annotations for the DI framework and auto-registration helpers. |
| 18 | +To get started with ZetaCore, please refer to the [documentation](https://docs.zetaplugins.com/zetacore) for installation instructions and usage examples. |
22 | 19 |
|
23 | | -## Usage |
| 20 | +## Documentation |
24 | 21 |
|
25 | | -### 1. Include zetacore as a dependency |
| 22 | +Comprehensive documentation is available at [https://docs.zetaplugins.com/zetacore](https://docs.zetaplugins.com/zetacore). It includes guides on installation, configuration, command registration, localization, and more. |
26 | 23 |
|
27 | | -#### Maven |
28 | | - |
29 | | -```xml |
30 | | -<repositories> |
31 | | - <repository> |
32 | | - <id>zetaplugins</id> |
33 | | - <url>https://maven.zetaplugins.com/</url> |
34 | | - </repository> |
35 | | -</repositories> |
36 | | - |
37 | | -<dependencies> |
38 | | - <dependency> |
39 | | - <groupId>com.zetaplugins</groupId> |
40 | | - <artifactId>zetacore</artifactId> |
41 | | - <version>{latest_version}</version> |
42 | | - </dependency> |
43 | | -</dependencies> |
44 | | -``` |
45 | | - |
46 | | -#### Gradle |
47 | | - |
48 | | -```gradle |
49 | | -repositories { |
50 | | - maven { url 'https://maven.zetaplugins.com/' } |
51 | | -} |
52 | | -
|
53 | | -dependencies { |
54 | | - implementation 'com.zetaplugins:zetacore:{latest_version}' |
55 | | -} |
56 | | -``` |
57 | | - |
58 | | -### 2. Shade into the plugin jar |
59 | | - |
60 | | -#### Maven |
61 | | - |
62 | | -To shade zetacore into the plugin jar, add the following to the plugins section of the `pom.xml`: |
63 | | - |
64 | | -```xml |
65 | | -<plugin> |
66 | | - <groupId>org.apache.maven.plugins</groupId> |
67 | | - <artifactId>maven-shade-plugin</artifactId> |
68 | | - <version>3.6.0</version> |
69 | | - <executions> |
70 | | - <execution> |
71 | | - <phase>package</phase> |
72 | | - <goals> |
73 | | - <goal>shade</goal> |
74 | | - </goals> |
75 | | - </execution> |
76 | | - </executions> |
77 | | - <configuration> |
78 | | - <artifactSet> |
79 | | - <includes> |
80 | | - <include>com.zetaplugins:zetacore</include> |
81 | | - </includes> |
82 | | - </artifactSet> |
83 | | - <transformers> |
84 | | - <transformer |
85 | | - implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> |
86 | | - <transformer |
87 | | - implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> |
88 | | - <mainClass>{main_class_path}</mainClass> |
89 | | - </transformer> |
90 | | - </transformers> |
91 | | - </configuration> |
92 | | -</plugin> |
93 | | -``` |
94 | | - |
95 | | -#### Gradle |
96 | | - |
97 | | -Idk figure it out yourself lol |
98 | | - |
99 | | -### 3. Read the javadocs |
100 | | - |
101 | | -You can find the javadocs [here](https://jd.zetacore.zetaplugins.com/). |
102 | | - |
103 | | -Usage examples and guides will be added in the future. For now, please refer to the javadocs for information on how to use the library. |
| 24 | +You can find the Javadoc API reference at [https://jd.zetacore.zetaplugins.com](https://jd.zetacore.zetaplugins.com). |
104 | 25 |
|
105 | 26 | ## License |
106 | 27 |
|
107 | | -zetacore is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for more details. |
| 28 | +ZetaCore is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for more details. |
0 commit comments