Zeromaniac Work Examples

Code for Minecraft

My first ever piece of code is a JavaScript to change a time stamp to a user configured format.

The image above shows the originally given time format at the top and my reformatted stamp below. The original information is generated by a very popular Java plugin called LuckPerms and parsed using PlaceholderAPI. My script fetches the values in each section, recalculates the units and truncates data based on user configuration.

As an absolute beginner with no knowledge, this script took me days to develop but it was really fun. I enjoyed the journey, but I also knew immediately that JavaScript would never become my favorite language. The script can be found here.


My first time using Java - Minecraft once more

For context, one needs to know that there is a plugin that can broadcast information about vanilla events in one's discord as text or embeds called DiscordSRV. There is also another plugin that creates really pretty embeds and assembles images, hooking into aforementioned plugin, called InteractiveChat. Both together make a great team, but only vanilla events are supported.

But what if we could expand the number of hooks?
What if we could add native support for popular plugins, such as shops, auction houses and punishment plugins to broadcast all event information to our discord server, allowing us to see everything that's going on without the need to be online? What if we could route different embeds to different channels and allow the user to customize their own embeds however they want? What if we could add conditions to the embeds to define dynamic rules and prevent abuse and spam?

Sounds crazy, right? Well, I did exactly that.
Countless hours of work went into this plugin that I called MoreDiscordSRVHooks. I really like the concept of Object Oriented Programming and had way more fun here than with the Java Script above. Sorry, JS!

The pictures feature a piece of one of the many config files in YAML format on the left and two embed examples on the right. As you can see, the config uses many documented placeholders to allow for a flexible design.

I would like to mention that, since this project does not utilize all of Javas library, a lot of knowledge about the language is missing, such as lambdas for example. High density syntax is hard for me to understand.


My current project - A keeper of all records

My current project doesn't even have a name yet.
The idea is to create a Windows Application (Windows Presentation Foundation) using the .NET framework and C# as language to help VFX Artists with their book keeping. My customer in this case is my boyfriend who has a registered company in said field. I wanted to learn C# better and more in depth with a real project at hand. The project is publicly available on my GitHub Page. Here's an example of the data structure of a "Client".

My project step by step

The basics:
I created a simple console application that holds the logic of the application - this way I can focus on the language first and implement the UI later.

Database Access:
Once the logic is done, I know I will need to read and write from database files. Since all I've ever touched before was YAML configs in Java, learning this in C# with JSON and SQlite, which I picked for data storage, is my next objective. I wanted to support a SQL type storage as well as a human readable one.

Windows Presentation:
As soon as this is functional, I will be moving my code into a WPF project. A rough design of the UI based on customer wishes is already laid out on paper.

Document Blueprint:
To further assist the user, a document creator is planned. In theory, this will work much like my plugin above - fetch data and fill a template. I want to not only create bills, but also custom documents for cases where a client may request a total overview of all projects ever done by the artist. Something like this would otherwise take a long time and manual lookup work to get and finish, so I'd like to take over the heavy lifting.

Useful Statistics:
Lasty, I will be adding statistics pages with filter functions for the user to quickly see current trends as colored graphs.


How I learn

I utilize different tools and ways to learn C# and obtain knowledge needed or beneficial for the profession as programmer and software engineer.

Online Tutorials and AI:
A complete C# coding course on Udemy helps me understand the syntax which I can then apply in my own project. I also use AI to give me examples and explanations I can relate to better than the ones given in documentations.

Good ol' books:
I am currently reading the 900 page book "Grundlagen der Informatik" to gain a better understanding of general concepts, the history, data structures, algorithms, database systems and much more. Surely this book will take a while to finish, especially since it offers quizzes and even more literature in the form of PDF files, but I am determined to finish it.

I already have the next book lined up called "Mathematik für Informatiker". Math has become my weakness as I've never used it much since my graduation in 2010. I'm working hard on catching up.

Public classes:
Starting in February 2025, I will be attending a course for 6 months to prepare myself for a job in the IT field. I expect to learn way faster with a tutor in arms reach.


My goal

I fell in love with the concept of Object Oriented Programming.
Especially C# with it's hybrid features such as var, const and out intrigue me. I mostly enjoy structuring and organizing the layout of data and programs. Clean, readable and reusable code causes a deep satisfaction within me. I can not get enough of engineering of software. Thus, I have set myself the goal to make my passion a profession and become an excellent software engineer with 3D art as sidekick.