Challenges

Discussion in 'Programming' started by PiggyPiglet, Apr 24, 2017.

  1. Hello, I'm looking for someone or some people to make a list of java, spigot related challenges that would be good for a beginner developer try to achieve. This is for me because I would like to start learning java again but it's also good for all the other people starting out learning, but I don't know what is good for a beginner so I came here. Most of my ideas are something that would only be achievable by experienced developers, where I am not that.
     
  2. Easy first steps are modifying chat, making mobs stronger or weaker, modifying their drops, creating a delayed task to send messages or items to a player,

    Creating a new ability that allows a player to do things they couldn't normally, like throwing an item that explodes on impact.

    The possibilities are really endless but start small and explore


    Sent from my iPhone using Tapatalk
     
    • Like Like x 2
    1. 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)
    2. Create a sword with a custom name and give it to a player. (Extra challenge: with modified attack damage)
    3. 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)
    4. 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)
    5. 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)
    6. Make the player unable to break blocks (Extra challenge: Only in a certain area/world and not for players in Creative)
    7. Make players not drop their inventory on death. (Extra challenge: Also make them respawn instantly, without having to click the "Respawn" button)
    8. 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)
    9. 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)
    10. Register a command [FONT]/cube <x> <y> <z> <size>[/FONT] 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)
    11. 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)
    12. 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)
    13. 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)
    14. Create a chat filter. (Extra challenge: Detect leet speech, eg. sh1t or f4gg0t)
    15. 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:
    1. 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!
    2. 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.
    3. 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.
     
    #3 StillNoNumber, Apr 25, 2017
    Last edited: Apr 28, 2017
    • Like Like x 2
    • Useful Useful x 1
  3. That sounds really cool, great idea.

    If your looking for challenges go on some server and check some stuff out. Search for something you really like and create (a simplified version of) it yourself.
     
    • Like Like x 1