Wtf is this? Well, this is my challenges repository, which contains the projects that assisted me in learning the spigot api and java when I was first starting out.
WARNING: The complete folder in here isn't a full collection of the completed challenges, they are merely my attempts, and should not under any circumstances be used as a guide.
-
Register a /greet command which sends "Hello!" to the player (Extra challenge: Add an optional extra argument which is the player's name that should be greeted)
-
Create a sword with a custom name and give it to a player. (Extra challenge: with modified attack damage)
-
Register a /warrior which clears your inventory and gives you iron armor, iron sword and a fishing rod. (Extra challenge: Also /archer with chain armor and a wooden sword, a bow and two stacks of arrows. Super-advanced extra challenge: /mage which has a Knockback II stick with customized attack damage which summons fireballs on a 5s cooldown and gold armor)
-
Register a command which teleports you to some kind of arena and sets your spawn there (Extra challenge: Teleport the player to a different world you've created earlier instead)
-
Design multiple respawn points for a player of which randomly one will be chosen on death (Extra challenge: The one with the largest distance to another player will be chosen)
-
Make the player unable to break blocks (Extra challenge: Only in a certain area/world and not for players in Creative)
-
Make players not drop their inventory on death. (Extra challenge: Also make them respawn instantly, without having to click the "Respawn" button)
-
Whenever a user mines a block with a diamond hoe, summon TNT at the block's position (Extra challenge: Your custom sword instead of the diamond hoe, but not any other sword. Super-advanced extra challenge: Use NBT data to do the extra challenge)
-
Create a scoreboard in the sidebar that increases by one every time a player kills another (Extra challenge: Increase by 2, decrease by 1 on death)
-
Register a command /cube which places a dirt cube with the side length size at x,y,z (Extra challenge: an empty box instead, centered at the player's position)
-
Create a timer that starts at 5min, sends a chat message every minute and when it's over (Extra challenge: Also send a chat message at 30s, 15s and every second after 10s)
-
Create a signs that grants you items on right-click (Extra challenge: trade instead, so you will only get the items if you have enough of another item)
-
Create a (static) utility function that adds an ATTACK_SPEED attribute to a weapon or tool, in a way that it cancels out the 1.9 changes (Extra challenge: Also cancel out the damage changes for each tool. Here are the old damage values)
-
Create a chat filter. (Extra challenge: Detect leet speech, eg. sh1t or f4gg0t)
-
Combine 3, 4, 5, 6, 7, 9, 11 and 13 to create a simple KitPvP plug-in. Congrats!
Here are some more advanced challenges that'll need a lot more research:
-
Use Databases to create a currency system. Be sure to take a deep look into this topic, while it's easy to throw something working together it will often be buggy and slow if you aren't cautious!
-
Set a player's client-side (in-game) time to his real time, depending on his timezone (geotracked using his IP - there are some free services out there to do that). The server-side time is always day and does not change.
-
Develop an anti-cheat. For every hack, think about how the hacker's behavior differs from a normal's user (eg. for speed hacks, a normal user moves only X blocks per seconds while a hacker may move faster). This is a very hard task and needs extensive testing.
Challenges list by StillNoNumber
Talk to me and get notified whenever I update this, Discord