Java wrapper for the KSoft API
You can create the KSoftAPI object by creating a new instance of KSoftAPI
and passing the token.
An example of this is shown below.
Example:
KSoftAPI api = new KSoftAPI("token");
Getting a random meme:
public class Main {
public static void main(String[] args) {
KSoftAPI api = new KSoftAPI("token");
Reddit reddit = api.getRedditImage(ImageType.RANDOM_MEME).execute();
System.out.printf("Title: %s\nURL: %s\nSubreddit: %s\nAuthor: %s", reddit.getTitle(), reddit.getSourceUrl(), reddit.getSubreddit(), reddit.getAuthor());
}
}
Getting a random meme from a custom subreddit:
public class Main {
public static void main(String[] args) {
KSoftAPI api = new KSoftAPI("token");
Reddit reddit = api.getRedditImage(ImageType.RANDOM_REDDIT).setSubreddit("thathappened").execute();
System.out.printf("Title: %s\nURL: %s\nSubreddit: %s\nAuthor: %s", reddit.getTitle(), reddit.getSourceUrl(), reddit.getSubreddit(), reddit.getAuthor());
}
}
- Errors
You may encounter a
MissingArgumentException
if the subreddit doesn't exist or it's not defined when usingImageType.RANDOM_REDDIT
.
You can fix this by ensuring that the subreddit you're grabbing stuff from exists or by just defining the subreddit. - Warnings
You may encounter a
You're setting a subreddit, but ImageType is not RANDOM_REDDIT
warning when working with images.
You can fix this by removing.setSubreddit()
when you aren't using anImageType.RANDOM_REDDIT
.
Getting a ban:
public class Main {
public static void main(String[] args) {
KSoftAPI api = new KSoftAPI("token");
Ban ban = api.getBan().setUserId("1234").execute();
System.out.printf("Ban: %s\nModerator: %s\nReason: %s\nProof: %s", ban.getEffectiveName(), ban.getModId(), ban.getReason(), ban.getProof());
}
}
Reporting a user:
public class Main {
public static void main(String[] args) {
KSoftAPI api = new KSoftAPI("token");
BanAction ban = api.getBan();
AddBan addBan = ban.addBan();
addBan
.setUsername("username")
.setDiscriminator("1234")
.setUserId("4321").setReason("Being mean!")
.setProof("google.com")
.set().execute();
}
}
You may encounter a MissingArgumentException: Missing action value. Could not be parsed
error when working with bans.
These might occur when trying to do something like this with AddBan
public class Main {
public static void main(String[] args) {
KSoftAPI api = new KSoftAPI("token");
BanAction ban = api.getBan();
AddBan addBan = ban.addBan();
addBan
.setUsername("username")
.setDiscriminator("1234")
.setUserId("4321").setReason("Being mean!")
.setProof("google.com")
.set();
ban.execute();
}
}
Notice how .set();
and ban.execute();
are separate? Being able to make this function work means the .set()
creates a new instance of Ban
that allows for reporting a ban. Since the code above uses an already instantiated version of Ban
, KSoft4J still thinks you're trying to grab stuff, not report.
Latest Stable Version: Bintray Release
Latest Version:
Be sure to replace the VERSION key below with the one of the versions shown above!
Maven
<dependency>
<groupId>net.explodingbush.KSoft4J</groupId>
<artifactId>KSoft4J</artifactId>
<version>VERSION</version>
</dependency>
<repository>
<id>jcenter</id>
<name>jcenter-bintray</name>
<url>http://jcenter.bintray.com</url>
</repository>
Gradle
dependencies {
compile 'net.explodingbush.KSoft4J:KSoft4J:VERSION'
}
repositories {
jcenter()
}
The builds are distributed using JCenter through Bintray KSoft4J JCenter Bintray
For general troubleshooting, you can view some troubleshooting steps in the examples (this will be soon moved to the wiki)
If you need help, or just want to talk with the KSoft.Si or other devs, you can join the KSoft.Si Discord server
The docs will have everything you need to know in order to use the wrapper.
KSoft4J Docs can be found here. It should be reletively easy to understand. If you have any questions regarding the documentation, please don't hesitate to contact me on Discord.
If you want to contribute to KSoft4J, make sure to base your branch off of our development branch (when we make one) and create your PR into that same branch.
It is recommended to get in touch with the devs before opening Pull Requests (either through an issue or on Discord).
This project requires Java 8.
All dependencies are managed automatically by Gradle.
- slf4j-api
- Version: 1.6.1
- Website
- JCenter Repository
- OkHttp
- Version: 3.11.0
- Github
- JCenter Repository
- org.json
- Version: 20160810
- Github
- JCenter Repository