Added API info to README
This commit is contained in:
parent
b21f02d01c
commit
683fb6ad8a
1 changed files with 71 additions and 1 deletions
72
README.md
72
README.md
|
@ -5,7 +5,77 @@ A plugin to easily create shows with multiple elements like Animatronics, Firewo
|
|||
Check out the description on [Spigot](https://www.spigotmc.org/resources/showcontrol.112641/) or [Polymart](https://polymart.org/resource/showcontrol.4793) for more information.
|
||||
|
||||
## Developer API
|
||||
This project contains a Developer API, which makes it possible to add your own show elements. For more information, check out the [JavaDoc](#).
|
||||
This project contains a Developer API, which makes it possible to add your own show elements. For more information, check out the [JavaDoc](https://sbdevelopment.tech/javadoc/showcontrol/).
|
||||
|
||||
### Including using Maven
|
||||
The project is on our Maven repository, add the following to your `pom.xml` file:
|
||||
```xml
|
||||
<repository>
|
||||
<id>sbdevelopment-repo-releases</id>
|
||||
<name>SBDevelopment Repository</name>
|
||||
<url>https://repo.sbdevelopment.tech/releases</url>
|
||||
</repository>
|
||||
|
||||
<dependency>
|
||||
<groupId>tech.sbdevelopment</groupId>
|
||||
<artifactId>ShowControl</artifactId>
|
||||
<version>1.5</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
### Controlling shows
|
||||
You can find all the methods you need in the `SCAPI` class.
|
||||
|
||||
### Creating your own trigger
|
||||
To learn how to implement your own triggers, check out [the default triggers](https://github.com/SBDPlugins/ShowControl/tree/master/src/main/java/tech/sbdevelopment/showcontrol/api/triggers/impl) for an example.
|
||||
|
||||
First, you need to create a new class inside your project. Use the following as a basis:
|
||||
```java
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.bukkit.entity.Player;
|
||||
import tech.sbdevelopment.showcontrol.api.triggers.Trigger;
|
||||
import tech.sbdevelopment.showcontrol.api.triggers.TriggerIdentifier;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@NoArgsConstructor(force = true)
|
||||
@TriggerIdentifier(value = "changeme", minArgs = 1, argDesc = "<arg0>", item = Material.GRASS_BLOCK)
|
||||
public class MyTrigger extends Trigger {
|
||||
public MyTrigger(String[] data) throws InvalidArgumentException {
|
||||
super(data);
|
||||
//TODO Do something with the data, whatever you want.
|
||||
//You can throw InvalidArgumentException if an argument is invalid (not the type you except).
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trigger() {
|
||||
//TODO Called when the show reaches this trigger in one of its cues, execute the trigger here.
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getArgumentTabComplete(Player player, int index, String arg) {
|
||||
//TODO Called when a user is adding this trigger as a cue, return a list of values for the provided arg. Starts on 0, which is the first argument of your trigger.
|
||||
return List.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
//TODO Called when the trigger cue is removed from a show, optional method!
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Then, you need to register your trigger(s) inside your plugin's Main class.
|
||||
```java
|
||||
@Override
|
||||
public void onEnable() {
|
||||
//Insert this inside your onEnable method:
|
||||
SCAPI.index(YourMainClass.class, "the.path.to.the.package.containing.the.triggers.you.created");
|
||||
}
|
||||
```
|
||||
|
||||
Lastly, don't forget to include this plugin (`ShowControl`) inside your plugin.yml as a dependency.
|
||||
|
||||
## License
|
||||
This project is licensed under the [GNU General Public License v3.0](https://opensource.org/licenses/GPL-3.0).
|
||||
|
|
Loading…
Add table
Reference in a new issue