Status
This thread has been locked.

thomaspj_10

Feedback score
0
Posts
5
Reactions
3
Resources
0
Hello and welcome to T&T Development!


Who are we

T&T Development is a small company founded by Tre & Thomas. We provide high quality Minecraft plugins for a reasonable price in small time periods.

We both have 4+ years of experience coding in Java, and we've been using the Bukkit API for over 3 years now. In the rare event that we don't finish a plugin due to unforeseen circumstances we make sure to write highly maintainable code so another developer can finish it in the future with ease.

What tools do we use

We found while coding with Bukkit that we repeat a lot of code. This is very time consuming. That's why we created a rich API for Bukkit. This eliminates repetitive code which saves a lot of time. We're able to deliver plugins much faster due to our API.

We use Github as our code control system. It's a premium repository so all projects are safe. We have a webhook in our Discord server where we receive updates.

Why should you choose us

- High quality Minecraft plugins.
- 4+ years of experience coding in Java.
- 3+ years of experience using the Bukkit api.
- We support all Minecraft versions.
- We provide the source code with the plugin's jar.
- We charge a fair price.

Previous work

We've created a public plugin. The source code is available at Github

If you're interested in working with us or if you have any questions, come and join our Discord server Discord
 
PebbleHost
High performance, consistent uptime and fast support. Minecraft hosting that just works.

GotoFinal

Feedback score
1
Posts
33
Reactions
15
Resources
0
Huh, I always got triggered by high quality so I could not miss this thread as you provided some examples. (but +1 for providing them)

If you are giving people source code - this is great, but such code is a pint in the ass for future developer as you didn't use maven or gradle. Source code should be provided in such way that I can just run single command and get working .jar without guessing needed libraries or using same IDE as you. (and ide files should be excluded from repository)

https://github.com/tt-development/s...er/src/ttdev/superpowers/CooldownManager.java
And this is just bad :D Don't use tasks for cooldown, you can just save time of last usage and cooldown time and check inside `contains` method if this time passed (+ probably rename that method). You can even make single method that just returns boolean if usage was valid - so you don't need to manually add and check cooldown, this can be done at once in some cases (unless you want to display rest of cooldown time).

https://github.com/tt-development/s.../ttdev/superpowers/Superpowers.java#L123-L142
Why duplicate code like that

Also you shouldn’t use label to check command name - what if someone will add aliases to your command?
Usage of enum for powers is also questionable - as it make it impossible to add new stuff from other plugins, extensions - good objective code should allow for that without any issues.
Also I don’t even understand how people can still buy plugins with hardcoded messages.
And the most popular issue I see in near every bukkit code - handling errors via “e.printStackTrace();” this is just horrible.

So after all I would say that this code is rather poor quality. A lot of static and hardcoded stuff with forced layer of “api” on it, that does not actually allow for anything.

(but most of offers here are similar)
PS: I don't do plugins anymore so I didn't write that to recommend myself. I only hope that this might help you learn more too. But most of the code I needed to fix after other developers was still much worse than this.
I also wonder if "T&T Development is a small company founded by Tre & Thomas." is true and this is a real company...
 

thomaspj_10

Feedback score
0
Posts
5
Reactions
3
Resources
0
Thank you for writing such a detailed reply!

We didn't use Maven our Gradle because there were only 2 people working on that plugin (It's most commonly used for larger teams). We plan to eventualy upload SuperPowers to spigotmc.org. We will leave a link in the readme.md pointing to where you can download it. I agree that we shouldn't put our ide files into the repository, stupid thinking..

I agree that the timer could be coded allot more efficient. I will change so it stores <power, system.currenttimemillis()>. It's a simple if check then. Thanks for the advice!

Do you mean 'player.sendMessage("Power type: " + activePower.getDisplayName());' with duplicate code? I will change that soon ;).

I definitely agree that every everything should be customizable. It's just an hassle to do. We use Enums for the powers because we don't plan to use extentions. It would definitely help if we added an error handling class.

This was very helpful and informative, we will definitely do something about those points.
- Thomas
 
Status
This thread has been locked.
Top