Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

* Notifications

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - JD9999

Pages: [1] 2 3 ... 50
Help / Re: Run.bat not working
« on: June 09, 2017, 09:41:44 PM »
There are two things that could be happening:
1) Rainbow.jar requires more RAM (more likely):
Try changing the arguments to allocate more memory:
java -Xmx1G - Xincgc -jar Rainbow.jar nogui

2) Your computer does not have enough memory (less likely):
You will need to close some applications on your computer, or maybe just restart your computer

V1.2.1 is up! Fixed a bug in ListConverter and Converter where an empty list/set would throw a StringIndexOutOfBoundsException

V1.2 is up! Added a toString(String) method to the ListConverter and SetConverter classes to have a custom split between each element in the list!

V1.1.2 is up! Fixed a bug in the RW4 encoder which would cause some characters not to be encoded and decoded correctly!

SharedPackages V1.0 is up!

Thanks for all your patience!

General Discussion / Re: Is anyone else still here?
« on: May 14, 2017, 12:21:09 AM »
Yeah, I'm here.
And BTW Shared Packages should be out tomorrow, if not two days.

I have great news! It is out of bug fixing stage and is into release stage!

I will be adding a couple of minor things for consistency, or removing a little bit of code clutter, as well as adding Javadoc to it. Other than that, it's ready!

Reading.Minecraft has been removed (as well), but that only had copies of classes inside the Reading package with slight changes for players. Everything else seems to exist (since my last post).

When I release it, it will be as a ZIP file, with each package as well as the whole thing. I will also be releasing all my code on GitHub when complete.

Enjoy! :)

General Discussion / Re: Rainbow Documentation
« on: April 03, 2017, 03:44:06 AM »
Secondly, no Rainbow plugin will ever require a POM file. The only two times you will ever need a file other than java class files is a plugin.properties file, and the manifest, as you can see about here and here, though most people won't need to worry about bytecode injection (the second one). The first one could be useful though.
I don't agree with that. While using a build system like maven or gradle is not necessary, it is good practice and will speed up the development. I think it's good to have the maven repository and artifacts we use documented somewhere.

Do we even use maven artifacts? There you go! I learn something every day.

General Discussion / Re: Rainbow Documentation
« on: April 03, 2017, 02:52:53 AM »
Awesome work!

In my opinion, only one subject needs changing: The developers section. I really have two problems with that:

First of all, you shouldn't be building off Rainbow anyway. The idea is that you build off the PluginReference, which everyone who downloads the Rainbow.jar has a local copy of. You can just add the library as a dependency in Eclipse or whatever IDE you use. I would recommend including a link to the javadoc for Rainbow, as well as DIW's tutorial.

Secondly, no Rainbow plugin will ever require a POM file. The only two times you will ever need a file other than java class files is a plugin.properties file, and the manifest, as you can see about here and here, though most people won't need to worry about bytecode injection (the second one). The first one could be useful though. Long story short: Rainbow is nothing like most Minecraft plugins. For example:

Code: [Select]
package TestPlugin;
import PluginReference.MC_Player;
import PluginReference.PluginBase;
import PluginReference.RainbowUtils;

public class MyPlugin extends PluginBase{

    public void onPlayerJoin(MC_Player plr){
        RainbowUtils.getServer().broadcastMessage("Player " + plr.getName() + " has joined the server!");


Is a plugin that, when compiled in a TestPlugin package and project, will send a message to everyone on the server when a player joins.

Off Topic / Re: Hi
« on: March 21, 2017, 11:29:20 PM »
Welcome to the world of silence.
On the bright side, there aren't any problems with Rainbow.
On the downside, it makes me look lazy. I can tell you I am stuffed with work, as well as having a week off for work experience, so I haven't had time to work on anything in weeks. Also Shared Packages is a pain in the backside.

How are you going? :)

API Requests / Re: [API REQUEST] Ability to load and unload chunks
« on: February 10, 2017, 08:04:52 PM »
The API has features to load chunks (MC_World.loadChunk(int x, int y), to get if a chunk is loaded (MC_World.isChunkLoaded(int x, int y)) and to get all loaded plugins (MC_World.getLoadedChunks()), but there is no method for deregistering chunks.

Plugin Releases / Re: Shared Packages - A tool for new plugin developers
« on: February 10, 2017, 05:35:28 PM »
Sorry that it's been so long.
I have finished writing the main features and the testers, and I have entered bug fixing stage. The features you can expect:

  • Converter that converts a List (ArrayList) to a Set (TreeSet)
  • Converter that converts an entity to a specific type of entity (a custom exception is thrown if the entity is not the specific type of entity
  • Astronomical date. Explained in the post above
  • Update to the SimpleDate class for a method that actually gets the time
  • Three different types of built-in encoders
  • Two interfaces for writing your own encoding
  • An EncoderWriter class to write strings with an encoding (or two encodings - the package supports duel encoding)
  • A LetterEncoding enum that has built in char[] encoding options for TwentySixLetterEncoder
  • A package with all the build in exceptions separately. They are included in the package they're related to, but they are also in a separate package if you really like the exception
  • An Algebra class that can complete various functions
  • A Pythagoras class that helps with Pythagoras-related questions
  • A Trig class to help out with Trigonometry-related questions
  • An MC_BlockScanner class to retrieve block(s) from various circumstances
  • An MC_ChunkRecorder to record chunks
  • An MC_EntityCreator class to create whatever entity you want
  • Updated constructors with readandwrite package
  • Some methods have been deprecated and will be removed within the next few updates. I will post on the exact version that will happen in
  • The four readers in the Reading package (CharsetReader, ContextReader, FilterReader & Separator Reader) can all be converted to each other using built-in methods. All four readers also can read a File, an InputStream, or a URI
  • CharsetReader to read a string based off a specific charset
  • ContextReader to read a string based of the purpose and possible functions of a string, using the MessagePurpose object. Also methods that define a ProfanitySource object (class that deals with removing profanities) and a PurposeFormat (defining exactly what you expect in a class)
  • FilterReader to read a string and filter it based off the method chosen to read by (examples include readExceptLines(List<String> badLines) and removeLetter(char))
  • FilterReader also has static methods to either remove or asterik words from a string
  • MessagePurpose class that handles using the format of the string to convert it into a more accurate and updated string
  • ProfanitySource for locating and storing profanities. They can all be updated as well
  • Purpose for redirecting the error and output stream. You can then send text to the error or output streams using the methods provided
  • PurposeFormat for defining the format of the text.
  • SeparatorReader for reading a string up to a point or reading it and separating it based on criteria
  • There is a Reading.minecraft package which has a MessagePurpose and a PurposeFormat class to include options for players.
  • filetimer class now has a public count variable, which counts the amount of times the timer has gone off since start. However, the filetimer class has also been deprecated.
  • PurposeFileTimers that reads off either a File or an InputStream and, on completion, executes a TimerPurpose (Explained below). Option for a repeating timer
  • There is a TimerPurpose interface. You would write either a class or an inner class that implements Timers.TimerPurpose. Your class must implement the execute() method.

  • A package with all the build in exceptions separately. They are included in the package they're related to, but they are also in a separate package if you really like the exception
  • There are now testers for each package located in the TestSharedPackages package. You can also double-click the SharedPackages.jar as a normal application and it will run.

Possible additions
  • Constructors for MessagePurpose that automatically redirect the error and output streams (similar to Purpose(String, PrintStream, PrintStream))
  • Add constructors in PurposeFileTimer that supports URI

  • If a MessagePurpose or a PurposeFormat is specified using either CONTAINS_DATE or CONTAINS_DATE_AND_OTHER_VARIABLES, the date will only be correctly properly if the format is dd/mm/yy
  • ContextReader does not support any of the Reading.minecraft classes / unique variables
  • Possible bug with advanced calculations for Astronomical class
  • Exception with AllEncoderBasic (a type of encoder)
  • Possible error with getting the side length of a square in the Pythagoras class
  • Possible error with getting the size of an angle in the Trig class
  • Possible error with getting the length of a side in the Trig class
  • Exception with BufferedReaderTest reading the first line of a file
There are also numerous bugs in the Reading package, but I have to fix up the tester first.
Note that all of the features above are subject to removal if the bugs cannot be fixed for that feature.

There is no Web package because I couldn't get it to work the way I wanted it to. Nor is there a Reading.Instruction or Reading.Practical. I don't remember why I removed those, but it wouldn't have just been for nothing.

Thank you all for your patience :)

Plugin Development / Re: Using JSON
« on: February 02, 2017, 01:10:23 AM »
Look at the BlockHelper class in the PluginReference. There are two methods depending on what type of name you want to have. The Block ID can be retrieved using the MC_Block.getID() and the subtype can be retrieved using MC_Block.getSubtype()

Plugin Development / Re: Using JSON
« on: January 30, 2017, 12:52:37 AM »
I'm assuming you import "org.json.simple.JSONObject".
By the looks of things Eclipse is just screwing up. Try restarting it.

API Requests / Re: built in SnakeYAML
« on: January 25, 2017, 02:31:42 PM »
I agree with Bayside. I could read YML in Notepad. Other formats I can't. Also because Bukkit had so many plugins that all had configs that all loaded fine, we can safely assume that it works and therefore the only trouble would be to implement it in Rainbow.

API Requests / Re: [APIRequest] disablePlugin();
« on: January 25, 2017, 12:52:59 AM »
Though this is not necessarily disconnected from the server, you could disable the plugin like so:

Code: [Select]
public void disable(String pluginName){
        PluginInfo info = RainbowUtils.getPluginInfo(pluginName);
        if(info !=null){
                System.out.println("Plugin " + pluginName + " is disabled!");
                System.out.println("Error! " + pluginName + " is not the name of a registered plugin!");

I don't see anything for enabling though (except in the Rainbow.jar, which I don't like to touch).

Pages: [1] 2 3 ... 50