Saturday, July 25, 2015

TabbyChat beta 3

I've released beta 3 today. Additionally, I've started uploading it to CurseForge so I can more easily watch it and inspect download counts. Links are below.




+ Revamped settings. They now use annotations to define settings.
+ Added settings objects, lists, and files.
+ Added update checker.
+ Added tabbychat proxy for basic tabbychat abstraction. Implementation is in tabbychat.
+ Add ChatBuilder
* Lighten the borders of gui components.
- Removed LogHelper (It was just a wrapper for Logger)
* Bug fixes

+ Add filter sound notifications
+ Add new system for channel status. Depreciated the old way.
+ Add Optional macros compatibility module.
+ Add PM Channels (prepended with @)
+ Add regex variables (See wiki)
+ Add regex group support to destinations (See wiki)
+ Add chatbox resizing
+ Make chat persistent between joins.
* Improve look of chat
* Fix wake up button

Check the commit messages for more details.

Thursday, June 4, 2015

TabbyChat 2 beta 2a

Edit: If you downloaded it already, download again. I fixed a bug with the updater that made it think it was always out of date.

Here's another update to TabbyChat. This fixes issues with outbound chat not being sent and links not being clickable. It also adds an update checker. An update to MnmUtils is not required.

2.0.0-beta2a: Main | Dev

MnmUtil downloads are in the previous post.

As always, report bugs.

Friday, May 29, 2015

TabbyChat 2 Beta2 Update

Update: beta 2a has been released

I'm releasing beta 2 of tabbychat 2 for Minecraft 1.8. It's been a while since the last release, so there are a lot of changes and additions, so I won't list them all. I will list some major features and bugs that I added or fixed.

+ Chat Continuation (up to 300 chars)
+ Ability to "forget" channels.
+ Channel prefix + hiding
+ Added experimental spam prejudice  (Thanks, Zemoj)
+ Chat logging
+ Scrollbar
+ PgUp PgDn now works on chat
* The tray now expands for the tabs
* Chatbox movement is now more fluid
* Fix issues with scaling
* Fix crash without Forge
* Moved some packages around
* Other fixes

Additionally, many changes were made to the util library, so an update to that will be required. Its version is 0.2


TabbyChat - Main | Dev

MnmUtils - Main | Dev

Note: With the recent merge of FML and Forge, I've dropped support for FML standalone. Please install full Forge. Don't worry, it will still work with just LiteLoader.

Friday, May 8, 2015

Link Info 0.4 Update

At the start of May, YouTube removed all support for the depreciated API v2, which is what I was using, so I am forced to update this. I wasn't planning on updating Link Info for a while because there are still some features I want to implement, but here I am.


Forum Thread:


  • Youtube: Changed to use oembed. This fixes The recent breakage.
  • Youtube: Removed duration, views, rating, and comment count. Will be back soon.
  • Imgur: Added support.
  • Images: Support for animated gifs
  • Several under the hood changes
  • Other stuff that I forgot about

Tuesday, March 31, 2015

Achievement Get

JamOOJam Beta was last weekend, and I participated. The mod which I submitted, Achievement Get, is a game of achievements.

It allows server admins (or single players) to create custom stat-based achievements for their players to achieve. Creating new achievements is as simple as editing a json file and restarting the server. See the wiki page for more info on it.

This mod is NOT required on the client, so it is an optional mod. Players without it will not suffer from any bugs because of it. But if they do have it installed, they will receive a popup when they get an achievement and also be able to check their progress in the achievement page.

Requires Minecraft Forge and Minecraft 1.7.10. A 1.8 version is also available.

The 1.8 version is recommended because 1.8 has significantly more stats than 1.7.10 for achievement creators to take advantage of. The actual code in either versions hasn't changed.

Minecraft Forums:


1.7.10: AchievementGet-1.7.10-1.0.1
1.8: AchievementGet-1.8-1.0.1.jar

Source and Copyright

Achievement Get uses the Apache v2.0 licence. You may use it in modpacks as long as you give credit. The source is available on Github.

Sunday, March 15, 2015

Kappa - Blockstates

I've made some additions to my annotation processor. I've added some new annotations for dealing with and automatically generating json blockstates and models.  The source is available on my Kappa Github repository.

The built jar is going to be a bit larger because I'm including gson with it. I do this so it works in eclipse without having to add another entry to the factory path.

Here's a short example on how to use this for Biomes O' Plenty.

@BlockDef(namespace = "biomesoplenty", blockname = "log", variants = {
        @BlockVariant(variant = "axis=y,variant=cherry", modelName = "cherry_log",
                modelType = ModelType.CUBE_COLUMN, textures = { "cherry_log_top", "cherry_log" })            @BlockVariant(variant = "axis=x,variant=cherry", modelName = "cherry_log",
                modelType = ModelType.CUBE_COLUMN, textures = { "cherry_log_top", "cherry_log" },
                pitch = 90),
        @BlockVariant(variant = "axis=z,variant=cherry", modelName = "cherry_log",
                modelType = ModelType.CUBE_COLUMN, textures = { "cherry_log_top", "cherry_log" },
                pitch = 90, yaw = 90)
Block log;

With the @BlockDef annotation, it can be placed on any field or variable, though preferably on a Block. You will give it arguments namespace and blockname. Namespace is your mod's ID or the domain your assets will be in. The variants argument is optional and will use the "normal" variant with a model of the same name as the block.

@BlockVariant will define both variants and models for the block def. All arguments are optional, so you can change what needs to be changed. You can rotate the model using pitch and yaw. The length of textures depends on modelType. See ModelType for a full list of models and their arguments.

Wednesday, March 4, 2015

HD Font Generator

Update March 5, 2015 (1.2): Use GNU Unifont as a fallback if a character isn't supported (it looks very similar to the default unicode font), decrease font size when it is too big and won't fit.

Update March 4, 2015 (1.1): Add experimental unicode generation and made errors more descriptive. Not all fonts support all the unicode characters, so this setting is not recommended.

Recently, I figured out how to create dynamic images in Java, so I felt like I should create a font generator from it, and now here I am writing this blog post.

This tool creates HD font resource packs using installed fonts on the system. If it's supported and installed in your computer, you can use it.

To use, select the font and texture size from the dropdown boxes and click Create. A zip named using the font name and the size will be created in the directory it was started from. Add this file as a resource pack.

For command line usage, just give it a font name with spaces replaced with underscores, then the texture size, one of [32, 64, 128, 256, 512]. A nonexistent font will use the JRE default (Dialog.plain).

Download [1.2] (Requires Oracle Java 7, not OpenJDK)
Pregenerated x32 Fonts (Agency, Arial Rounded, Arial, Comic Sans, Courier New, Impact, Tahoma, Times New Roman, Verdana) (Generated with v1.0)

Note: Every font is different, so some may look weird and require tweaking after generation, but most fonts should be fine.

Friday, February 20, 2015

TabbyChat 2 beta (mc1.8)

Update: I've fixed some startup issues when obfuscated. Redownload.

I've done some progress on TabbyChat 2 and am pleased with it so far. Currently implemented is timestamps, movable chat box, channel and pm detection, anti spam, and basic filters. Filters right now are able to redirect messages to other channels and that's about it. A new feature related to filters is live expression validation, meaning it will tell you if your RegEx is valid and what's wrong with it.

One other new feature that is implemented is the ability to change the colors of chat. You can change the colors of both the chat box and the chat text. I designed a gui to change them, so tell me how it is.

To access the settings, right click on the "*" tab. Right clicking on any other tab will take you to the settings for that tab.

By now, the API is mostly stable, so developers, feel free to start using it. In fact, I encourage it. That doesn't mean it won't change in the future, so watch for updates.

Because of new functionality in FML and LiteLoader, I am able to distribute using one archive for both versions, so no need to change the extension to litemod if you're using LiteLoader. However, Tabbychat now requires a dependency of my own, so be sure to grab that as well.

Here are the downloads for them. This is for Minecraft 1.8, so don't try using it on 1.7.10.

Main | API | Deobf

MnM-Utils (required)
Main | Deobf

Report any issues you have with it. More features are to come.

Sunday, February 1, 2015


Over the past few days (since Friday afternoon), I've been working on an annotation processor to help me deal with the many Forge annotations, and this is the result. It is called Kappa (Killjoy's Annotation Post Processor Application). Thanks to LexManos for the name. The source is available on GitHub.

It works with both 1.7 and 1.8 versions of Forge, but it does require Java 1.7 because of some String switches I use. What the Forge portion of this actually does is cause compile errors if the annotation isn't being used correctly, such as giving the wrong modifiers, providing the wrong return type, or wrong parameters. It also does type checking so things don't explode when you run it.

@Instance will check that the type is the same as the owner.

@SidedProxy is special. It will parse the clientSide and serverSide Strings and warn you when they don't exist. It will error if the types aren't compatible.

This is very easy to use with javac (simply add it to the classpath), but it's a bit involved with IDEs. See here for eclipse, and here for IntelliJ.

Thursday, January 22, 2015

Some of my projects

Here's some links to my current projects. I'll be creating individual posts for each project later.

Minecraft Mods
  • Tabbychat - SMP Chat overhaul. Originally by Rocketman10404.
  • Link Info - Displays info about a clicked link from chat
  • Protocol4 - Allows 1.7.10 clients to connect to 1.7.5 servers
Minecraft Tools
  • MCPatcher Repackager - Repackages MCPatcher so it can be loaded from the mods folder.
  • MCUpdater Plus - Minecraft modpack updater in the form of a tweak. Also loads tweak dynamically. (WIP)