Activity

DevCmb

Shipped this project!

Hours: 158.86
Cookies: 🍪 4645
Multiplier: 29.24 cookies/hr

Demo video: https://www.youtube.com/watch?v=WFtXUpfsdHM

I finally did it. I finished a new biggest project!!!!!!
I’ve always loved events like MCC and Blockwars, and finally being able to make my own is so cool, and something I’ve been wanting to do for a long time.

This project helped me learn so much about kotlin in ways that my last projects simply haven’t allowed me to. It was a lot of hard work, and now its time for it all to (hopefully) pay off.

This was an ambitious project and one I’m so proud of, and I hope the world enjoys it too ❤️

DevCmb

And with that, its done yay

This is a project i’ve wanted to do for such a long time now, im so grateful that I could finally do it and actually finish it for flavortown
As always, here’s the changes ;)

  • Remove curseforge from the readme because they deleted my project sad-cat-thumbs-up
  • Fixed a bug where sniffer caretaker wouldn’t disable the countdown after the game ended
  • Fix a bug where you could convert farmland into grass by placing a block on top of it
  • Make a dumbed down version of the resource pack (the original has some assets that i was given that were payed for by that individual, so its not right to include them publically)
  • Make a template server with db mode off
  • Fix a bug where some games wouldn’t enable the countdown bossbar after they joined
  • Disable dev mode
  • Fix a bug where nametags were still visible in breach
  • Properly clear starPickupTimes in breach
  • Fix a bug where you could take the star out of your offhand by hotkeying in breach.

Changelog

Attachment
1

Comments

matt.bh27
matt.bh27 about 11 hours ago

Yo this is so tuff great job I hope to play it with my friends soon

DevCmb
  • Hide scores during and after the 4th game to build suspense on whos in the final duel
  • Add download instructions to the readme
  • Announce the finalist after all 4 games have finished, then start breach
  • Added a little cutscene for the score breakdown where all but the top 3 scores are revealed

Changelog

Attachment
Attachment
0
DevCmb
  • Convert the hub world to a template so it can be version controlled (and to prevent it from saving and messing it up)
  • Added the remaining game dioramas that get pasted in when the game gets shown in voting
  • Fix a party bug where players in a team matchup wouldn’t be taken out of spectator

Changelog

Attachment
Attachment
0
DevCmb
  • Add proper score commands for setting, getting, nuking, distributing, and replicating scores
  • Add a server MOTD
  • Fix a bug where players would spawn with 10 hearts in deathrun if they joined during the game start sequence
  • Give reasonable defaults to certain lateinit fields in the TumblingPlayer to prevent potential race conditions
  • Add a score property to the teams enum that gets and sets the value to/from the EventController
  • Fix outdated countdown documentation in GameBase

Changelog

Attachment
Attachment
0
DevCmb
  • Fix a bug where the cutscene would run multiple times if players joined halfway through
  • Add documentation to the config.yml file (majority of the time)
  • Move the vote sign quaternions to the config file (and fix bugs associated to that where I did .take on the wrong list)
  • Move the first teleport of a CutsceneStep to its constructor
  • Change the lines in the cutscene message from a UserInterfaceUtility method to a custom minimessage tag

Changelog

0
DevCmb
  • Pasted the dioramas for the game in the voting cutscene
  • Changed the arena center to basically be on the ground
  • Started the process of documenting the config files
    not much else, locking in on the last few things

Changelog

Attachment
0
DevCmb
  • Make the walls come up when voting ends
  • Added the plugin dependencies to the runServer task to automatically be downloaded for dev stuff
  • Added build settings that allow me to debug the plugin properly, as well as hot reload methods that need changing (not requiring a full server restart)
  • Added a system to the timer class where code can be executed whenever the timer reaches a certain number

Changelog

Attachment
0
DevCmb

I wish I could’ve done more, but I ran into some really annoying bugs I had to solve

  • Add player join and leave methods to party
  • Fix a bug where players wouldn’t be teleported back to the hub after the game ends if there were any spectators
  • Fix a bug in deathrun where players joining in the round-end wouldn’t be put into spectator
  • Rebalance scores on Deathrun for 32 players
  • Change the runnables on deathrun from being per-player to having 1 that manages all players
  • Move the deathrun un-spectate logic to pre-round instead of post-round
  • Edit deathrun to use all possible running players for scoring, not just those that were online
  • Fix the spectator page controls having a minimessage key that didn’t exist (<!_i>)

Changelog

Attachment
0
DevCmb

New biggest devlog! I did a lot of fixes for every game (except party, thats next but its been too long since a devlog)
Sniffer Caretaker was very bugged, so I fixed a bunch of those issues, as well as fix my own bad code elsewhere yay
Anyways, here’s the changelog for everything (its so much)

  • Added a system for muting the chat during the pre-game cutscene
  • Added the backend system for player join/leave
  • Change milk buckets to not clear effects
  • Fix the crumble and deathrun round timer running its callback even if it ended early
  • Implemented methods for leaving and joining in deathrun (it spawns an attacker if they are one, spawns a runner at the start if its pre-round, and spawns them as a spectator otherwise)
  • Implemented methods for leaving and joining in sniffer caretaker (it just spawns them at their base and kits them)
  • Added handling for joining mid-cutscene
  • Implemented methods for leaving and joining in crumble (not enough chars to explain)
  • Added a system in crumble where players who weren’t online would be killed and give score to the opponent team
  • Change scoring to give a potential remainder so the lowest scoring players instead of just giving less score.

Sniffer Caretaker bugfixes

  • Fix a bug where you could re-collect blocks from the bored task
  • Fix gravel being able to drop flint
  • Fix a bug where you could convert coarse dirt into mud
  • Fix a bug where milking a cow would give you a water bucket (how do you mess this up 😭)
  • Restrict crafting to a select few recipes

Changelog (names dropped for character limit)

Attachment
1

Comments

Nibbles
Nibbles 11 days ago

Bro is larping as a sniffer caretaker😂 bro doesnt even goog bro doesnt sniff bro doesnt even know his sniffer cartektaker tasks. goog steamhappy bro doesn tret ubmler

DevCmb
  • Add text channels for local (everybody), team (only players on your team), and staff (just developers and organizers).
  • Fix a bug where spectating players would get concurrently modified in 2 cases
  • Added messages for getting kills, as well as an icon for every type (sword, bow, trident, explosion)
  • Added a config value that allows you to run the server without a mysql database. This is going to make review be much easier
  • Make a cool thumbnail for the project
  • Fix a bug where players who died in deathrun wouldn’t be marked as dead properly
  • Fix a bug where players who died in deathrun could still trigger checkpoints
  • Properly set up the permissions in the config.yml
  • Add a buffer and page controls to the spectator menu

Changelog

Attachment
0
DevCmb

We’re in the homestretch now

I’m done making games so now its time to polish up everything and get ready to ship.
The event ends in a bit over a week, so I have to LOCK IN
Anyways, here’s all I did

  • Added a standard spectate system with a compass for teleporting to players
  • Fix crumble not putting players into survival
  • Fix a bug with the cancelCountdown method using old variables that weren’t properly tied to the new system
  • Added a flag USE_SPECTATOR_DEATH_SYSTEM to cancel death events and place players into spectator
  • Fix a bug where the format method on timers would fill the current minute seconds (0:XX) instead of the minutes (X:00)
  • Remove the player respawn logic from crumble because its not needed now that death events are handled
  • Fix natural regeneration being enabled in party and made it a new flag DISABLE_NATURAL_REGENERATION
  • Change any instance of green concrete to lime concrete because its more vibrant
  • Make it so spectating teams get automatically added to the spectator list
  • Add a flat player skull to the resources (looks way better)

Changelog

Attachment
0
DevCmb

And with that, it is ACTUALLY done 🎉

Big things are happening since I did a small playtest with 1 other person and found a bunch of things to fix and balance.

  • Remove horses from the spear duels game because its very jank
  • Degrate the tier of the spear in the spear duels game to diamond
  • Change the quick charge level on crossbows in the bow duels game from 1 -> 2
  • Remove the density enchantment from the mace in mace duels
  • Fix a bug where bow shots would bounce off players due to a difference in how the entity damage is handled
  • Add the new arena loading title that I forgot about to team games
  • Fix a bug where players would be shown async, causing an exception and breaking a bunch of stuff
  • Fix a bug where team players would only get 5 ticks of blindness instead of 5 seconds
  • Fix the x position of arenas being used for multiple arenas, causing overlap (actually this time, last time I thought I fixed it, didn’t test it, and it was still around)
  • Change the party game cleanup method from being async to being under a suspendSync
  • Fix a bug where team players weren’t added to the inGamePlayers list, breaking stuff
  • Add an allowRefights config value for if 2 players/teams can fight twice in a row (used for testing in low-player environments)
  • Add a showToAll call in the cleanup method to show players when the game cleans up
  • Fix a positioning bug with the 4th voting sign

Changelog

Attachment
0
DevCmb

And with that, it might be done 👀

  • Added a pre-game cutscene to party
  • Update the party matchmaker to not put you with the same player or team twice in a row
  • Fix a bug where the start and cleanup methods wouldn’t get called
  • Fix a bug where the horses could still move in spear duels before the game started
  • Add a small delay to matches starting after the loading finishes
  • Change the loading text to have fade up and down

Changelog

Attachment
0
DevCmb
  • Add the axe duels party game
  • Add the mace duels party game
  • Add the spear duels party game
  • Add the bow duels party game
  • If the player is riding a vehicle, remove it when the player joins to prevent problems
  • Cancel bow charge events whenever the player is frozen to avoid being able to shoot into the pre-game darkness
  • Silence cutscene pigs because Nibbl_z really wanted me to
  • Remove draws from the scoreboard because of the line restrictions
  • Add enchantments and item count to the AdvancedItemStack system

Changelog

Attachment
Attachment
Attachment
0
DevCmb
  • Added the system for matching teams
  • Added an actionbar to indicate the player’s current state in the game
  • Add the intermediary period where games don’t start, waiting for team games to activate
  • Fix a bug where kill events would be tracked for other players in active games, not just the current matchup
  • Fix a bug where players could hit eachother in the lobby
  • Fix a bug where spectators could attack regular players
  • Add score sources for all game stuff

Changelog

Attachment
0
DevCmb

I did so much! Would’ve made a devlog sooner but a lot of it was internal changes.
Anyways back to your regularly scheduled changelog

  • Added a simple matchmaker for individual games (team games next)
  • Converted the PartyGame interface to an abstract class and implement kill tracking for game results
  • Redo the timer system to use a domain-specific language (DSL) for more control over its behavior
  • Redo the kit system to have support for both regular ItemStacks, as well as AdvancedItemStacks
  • Freeze players in party before their game starts
  • Added a method to the Format object to apply standard minimessage formatting to text

Changelog

Attachment
0
DevCmb
  • Added spawning after the arena loads
  • Unified the IndividualPartyGame and TeamPartyGame classes into a single class because they basically have the same behavior
  • Added the pre-round countdown which shows the matchup and a speedy 3-step timer (400ms per step)
  • Move the StandardSwordDuelsgame to the shared directory instead of the individual one
  • Allow the name format method to take null as an argument to provide a generic placeholder “Player” name
  • Fix a bug where the kit system wouldn’t clear your inventory

Changelog

Attachment
0
DevCmb
  • Got a method working for loading the maps for the different minigames
  • Added a kit system where you can define a preset kit and give it out to players. I’ll likely expand this to be like player-specific/team-specific, but thats for a future time
  • Added the pregame cutscene which says that individual games are first, then followed by a countdown
  • Change the method in the individual games to be postSpawn instead of spawn (spawning will be handled by the main game itself)

Changelog

Attachment
0
DevCmb

Its that time again 👀

New Game: Party

I love those quick-paced minigame games (i’ve been told its similar to warioware), so its time to make a version of that for Tree Tumblers!
For the first half of the game, players will fight individually in 1v1s across a bunch of minigames, then, at the 5 minute mark, it’ll transition to team 4v4s (or however many people on teams)

And with that, heres the stuff I did !!!!

  • Added the base for the party controller
  • Added a command for loading and saving game maps
  • Renamed Red Rabbits to Red Raccoons
  • Fixed players being put into survival instead of adventure when the game ends
  • Fix score replication not setting the UUID parameter
  • Changed the db to only request data of whitelisted players
  • Change the timer onComplete function to be run in a suspendSync block

Changelog

Attachment
0
DevCmb

Shipped this project!

Hours: 13.19
Cookies: 🍪 178
Multiplier: 13.48 cookies/hr

I finally got around to making an MCC Island website! I’ve been wanting to learn how to use the MCCI API for a while now, and this lets me learn it while also making something useful in the process! I’m still no webdev genius, so I probably did some things inefficiently (and i basically threw out the concept of server-side rendering because I don’t understand it enough), but it works and im happy with it!

DevCmb

Another big one, this devlog is definitely a lot of finishing touches!

  • Added a readme
  • Finally added a home button on the compare page (it’s been on my mind for so long and i only now added it goog)
  • Add proper error handling on the homepage (previously it’d just direct to a 404 if you didn’t provide both players)
  • Applied the fix for api being disabled to a spot I missed, which would previously crash the website when you went to the style tab.
  • Add a 7 requests per minute ratelimit. This seems harsh but is more than enough given you’re not going to be making requests too often

Changelog

Attachment
Attachment
0
DevCmb

A lot of say for this devlog!

  • Removed the redundant name from the comparison box (the one with all the trophies) because it was basically just the same info already in the topbar. I moved the rank, crown, and + up to the top to accompany this
  • Restructured the trophy comparison to feature 2 layers, one with your crown level and overall trophies, and one for your trophies of each type
  • Fixed a bunch of bugs, boring boring :P goog
  • For collections which only have bonus items, I made it display the bonus trophy total instead of 0 style trophies

Changelog

Attachment
Attachment
0
DevCmb

Added a panel for showing all the games on MCC Island, along with the amount of trophies that can be earned from them and the 2 player progressions towards max.

This is basically already 1/3rd of the website done! I might not do fishing because it’d take a really really long time to get working, but we’ll see!

Changelog

Attachment
0
DevCmb

Added a topbar to the top of the page to allow you to change the currently selected player. Also added an easteregg for the player fanojug and moved all logic to a seperate component for the client (state management in nextjs is weird)

Changelog

Attachment
0
DevCmb
  • Make it so when voting finishes, it automatically starts the game
  • Change the method used in the start game command to an async version
  • Fix a bug where tumbling players, when having their score changed, would essentially re-create the object
  • Properly spawn voters at the center of the arena
  • Shorten voting time 30s -> 20s
  • Fix a bug where spectators would still have their votes count
  • Fix a bug where async countdowns wouldn’t execute the onExecute method attached to it
  • Slightly re-order the countdown logic to have 0 not yield, instead ending immediately

Changelog

0
DevCmb
  • Add the voting system where players vote by standing on the color corresponding to the game they want to play
  • Add a command for setting event timers
  • Add a Material validator in the ConfigController
  • Include the name and votable state of games in their RegisteredGame class
  • Add a name field to games for public-facing events
  • Display in the scoreboard if the timer is paused

Changelog

Attachment
0
DevCmb
  • Added a pre-event cutscene that will later be used to explain voting, scoring, etc
  • Refactor cutscene steps to not require a game or LaodedMap, instead giving an option to just provide a world and configuration section
  • Move the logic to prevent dismounting inside the CutsceneContext class itself instead of being handled by the GameBase
  • Add a command to manually trigger a ready check
  • Add a command to pause the active event timer
  • Add protections to the hub world (make it so players not in creative cannot damage the map)
  • Edit the scoreboard to show if the timer is paused
  • Spawn players in adventure instead of survival
  • Force load the hub world
  • Rename Orange Ocelots to Orange Orcas to steer away from MCC-equivalence
  • Deactivate the intermission scoreboard when the game starts

Changelog

Attachment
0
DevCmb
  • Add the ready check system for starting the event
  • Add the /event start command to start the event (triggering a ready check to continue)
  • Add a section on the intermisison scoreboard to track a timer (ready check -> active timer -> “Event Inactive” -> empty component)
  • Fix a bug where the server would try to update UI for players that have already disconnected
  • Change the data replication logic to be done at the end of a game, not when the server closes. This should hopefully mean that if it crashes mid-game, we can re-run without a partial state being captured in the database.
  • Change instances of creating an audience out of all online players to a Bukkit.broadcast call instead (cleaner)

Changelog

Attachment
0
DevCmb
  • Add a scoreboard for when no game is active
  • Rework the system for the TumblingPlayer data class such that an instance is created for all whitelisted players, not just online ones
  • Replace the individual getPlayerData database function with getAllPlayerData to be invoked when the server boots
  • Make tumbling players the main parameters for format operations (with an option for players still being available)
  • Add a secondary method for getting controllers, using an inline function and a reified type generic to reduce the need for arguments and casts
  • Safeguard whitelist calls from executing if the provided profile does not have a user ID associated to it
  • Set up the basic event state class for later implementation
  • Make the team score method give score to all members of a team, not just online ones
  • Fix inconsistencies in format for scoreboard score numbers (color tag was inside the formatter instead of the template)

Changelog

Attachment
1

Comments

Nibbles
Nibbles 27 days ago

big things are happening

DevCmb
  • Change the game timer system to be class based. This allows multiple timers per game, timers outside of games, etc
  • Added the /timer command which allows setting, pausing, and unpausing timers.
  • Made it display a Paused text in the timer bossbar if the timer is currently paused
  • Fixed a bug where the /world command did not have a permission requirement
  • Fix a bug with deathrun where the first team to be trapping would get trap items during the cutscene
  • Fix a bug where all players would be affected by end-of-round run-failing instead of just participants (this would include spectators)
  • Fix kill formatting not displaying kill score

Changelog

Attachment
0
DevCmb

And with that, Deathrun is complete for now 🎉

  • Added a cooldown indicator as a bossbar for traps
  • Fix a bug where the end display wouldn’t update due to the chunk being unloaded
  • Made it so runners cannot see other runners
  • Fix placements being 0-based instead of 1-based (0th place instead of 1st)
  • Edit the crumble bossbar to show a warning icon if something goes wrong

Changelog

Attachment
0
DevCmb
  • Add a proper cutscene to deathrun
  • Give players win score based on their placement instead of being a fixed constant
  • Add a score display at the end to indicate the score for finishing at that time
  • Rename parseCoordinates to validateLocation for consistency with Nibbl_z’s branch
  • Edit the cutscene context to hold an instance of the game its being ran for

Changelog

Attachment
Attachment
0
DevCmb
  • Added checkpoints to the deathrun course
  • Finally move coordinate parsing to a class instead of reusing the exact same logic over and over
  • Fix a bug where you’d only have 3 hearts when respawning
  • Fix a bug where you’d be given damage sfx and visuals when spawning
  • Add void height to the config (I only added it to the prod config, not the template goog

Changelog

Attachment
0
DevCmb
  • Add individual score to all the scoreboards
  • Move the repeated getTeamScoresComponent and getIndividualScoreComponent methods to UserInterfaceUtility instead of just reusing the logic
  • Move some MiniMessage placeholders to the MiniMessagePlaceholders class for global updating
  • Add an extension function for getting a player’s formatted name

Changelog

Attachment
0
DevCmb
  • Add the happy ghast trap
  • Add a debug toolkit to deathrun to trigger death events
  • Added a custom void height to respawn players when they fall
  • Removed the magma floor from the beam run to instead focus on just killing those who fall
  • Remove placement bonuses from deathrun in accordance with Nibbl_z’s score system changes

Changelog

Attachment
0
DevCmb

I’m bouncing back and forth between like 20 things now because thats how im staying motivated with this project!!!

  • Give the crumble kit selector a custom inventory UI
  • Fix deathrun individual placement not giving a message for individual placement
  • Fix a bug on nibbles’ sniffer caretaker game which caused him 3 hours of problems
  • Fix a bug with deathrun where the timer wouldn’t go away after the game ends
  • Start on the noxesium Qibs for movement (a quib is just a hitbox that does something when the player enters it). This runs independent of ping so its consistent regardless of player latency. Didn’t get around to actually implementing it because the documentation is basically nonexistent

Changelog

Attachment
0
DevCmb
  • Track the amount of time the player spent in the course
  • Display that time in the actionbar
  • Show the current matchup in chat to be consistent with other game events

Changelog

Attachment
0
DevCmb
  • Add the game and round end logic for deathrun
  • Award points for trappers getting damages or kills
  • Announce when a player wins or loses
  • Move some repeated logic to the GameBase class for displaying individual and team scores
  • Make completing or failing the run turn you into a spectator
  • Fix the countdown timer being slightly offset by 3 pixels

Changelog

Attachment
0
DevCmb
  • Display the members of a team in the scoreboard
  • Refactor the database to properly update the cache when reassigning teams
  • Refactor the database to store UUIDs alongside names in the whitelist cache
  • Add the minimessage placeholder method to this branch

Changelog

Attachment
0
DevCmb

Taking a bit of a break from Deathrun to do some of the event stuff

  • Show a logo, event mode status, and team scores in the topbar
  • Hide playerss from the player list (will be re-added below the respective team next commit)
  • Spent way too long debugging an issue just to realize my resource pack was outdated
  • Moved 1px text padding calculation to UserInterfaceUtility
  • Add a command for listing all teams (was used to get pixel lengths)

Changelog

Attachment
0
DevCmb

Global Changes

  • Edit the score system to allow custom ScoreSources for later logging
  • Added a command to send a game message from the current game
  • Cancel all damage from fireworks because they’re often used for effects
  • Keep track of invisible players to hide them for when players join

Deathrun Changes

  • Define an end gate so that, when passing it, you become a spectator and get win points
  • Give the game an icon
  • Give the game messages for score sources

Changelog

Attachment
0
DevCmb

Global Changes

  • Reset a few more values when players connect
  • Fix the DISABLE_BLOCK_BREAKING flag disabling block placing instead of breaking

Deathrun Changes

  • Give attackers speed
  • Clear attacker inventories after the round ends
  • Add a safeguard that makes it so you can’t use the trap items unless your team is up
  • Fix a bug where you’d have to move to get a trap item
  • Set the player’s max health to the amount of lives they have
  • Force all damage sources to only do 1 heart and respawn the player

Changelog

Attachment
0
DevCmb
  • Added the trap system which gives the attackers an item based on where they are to control a certain trap
  • Edit the advance item system to disable dropping for items

Yes this is unfortunately all I did
I had a lot of problems while making this

Changelog

Attachment
0
DevCmb
  • Made the pre-round sequence where it announces whos attacking now
  • Place attackers at a different spawn so they can see over all of the other players. I’ll give them trap tools soon™️
  • Edited the topbar to display the current branch and a build number instead of the $version-$build
    idek why this took so long goog (prob stuggling with git for a while)

Changelog

Attachment
0
DevCmb

New Game Started: Deathrun

I played a bunch of those “out-play the killers” games when I was younger and I wanna bring the idea to this event

  • 1 team at a time will try to kill as many people as possible with traps as they go through a small parkour course (1-2m).
  • The team will get score based on how many people they’re able to kill, and each team will go 1 time.

Other changes

  • Added a dev bossbar containing the build identifier (hexadecimal) and current state (indev)
  • Include templates in the repository to help with collaboration
  • Added the GPL v3 license to the project
  • Disable the locator bar by default with a flag to re-enable it
  • Make it so players on the same team can’t attack eachother

Changelog

All changes from here on out are on a seperate branch for collaboration with one of my friends who is helping with another game.

Attachment
0
DevCmb
  • Add the scoreboard system for enabling and disabling scoreboards for a player
  • Added the crumble scoreboard
  • Change team placement and indiv placement to use team priority in the case of a tie
  • Centralize the glpyh pixel widths using a github gist I found

Changelog

Attachment
0
DevCmb
  • Make the cutscene for crumble
  • Make falling a certain distance immediately kill you
  • Reduce load when breaking walls
  • Add a minimessage instance
  • Unhide spectators in the cleanup stage instead of postgame

Changelog

Attachment
0
DevCmb
  • Add some more in-chat game messages
  • Fix team score being applied before the message was constructed (creating ghost points)
  • Correct the team score formula to actually use the right value
  • Convert some weird conjoined tables to audiences

Changelog

feat: ✨ Add more game messages and fix some ordering issues

Attachment
0
DevCmb
  • Display the scores of all teams and players at the end of the game
  • Have certain score sources tell the player a message
  • Reward individual and team score for winning, losing, and drawing matches
  • Edit the opening cutscene to include the game’s icon
  • Finally gave the teams proper icons

Changelog

feat: ✨ Announce team and individual placements at the end of the game

Attachment
0
DevCmb
  • Close the game loop with the game end and cleanup methods
  • Nerf bomber blast protection level II -> I
  • Internally non-null assert tumbling players (if they didn’t get created you wouldn’t be able to connect to the server)
  • Fix actionbar runnable not being run properly for crumble
  • Re-arrange events to be at the bottom of the game base and crumble files
  • Make it so spectators cannot take damage
  • Internally keep track of the score earned in the game

Changelog

Attachment
0
DevCmb
  • Spawn players who die at the center of their arena as spectators (players cannot see spectators)
  • Make asyncCountdown not fire if the countdown was cancelled
  • Fix a logic issue where any kill would give your team a win/draw (depends on the amount of players)
  • Fix win and loss states setting the wrong round’s result (currentRound is 1-based while indexes are 0-based)
  • Made it so if you have your block place cancelled before a round starts, it won’t also do the tnt spawn logic
  • Add a timer set command
  • Made the timer repeat until the time hits 0, not a set amount of time. This makes it respond to mid-countdown changes.
  • Reduce the amount of arenas from 7 to 4 because I thought that 8 matchups meant 7 were needed, but no, thats just the round count, the amount of arenas needed is teams/2 (2 teams per arena)

Changelog

Attachment
0
DevCmb
  • Add a countdown timer at the top of the screen
  • Add a bossbar handler for UI elements that appear up in that area
  • Give a sword pickaxe to all kits other than worker (which already has an iron one)
  • Add a Round Over title for when the round ends
  • Draw any rounds not over in 2 minutes
  • Make it so you can’t place blocks until the game starts

Changelog

fix: 🐛 Make it so you can’t place blocks before the round starts

feat: ✨ Add the timer system

Attachment
0
DevCmb
  • Add the sorcerer kit
  • Change the armor in most kits from a helmet to boots
  • Buff swords without enchantments to stone

Changelog

Attachment
0
DevCmb
  • Add the ninja kit. This one took the longest because I had to add a custom item for the ninja and resolve a bunch of dependency issues.
  • Made round spawning reset your fire ticks
  • Changed hud positioning for the kit indicator to be slighly more accurate (ninja is offset but im not sure theres much I can do for now)

Changelog

Attachment
0
DevCmb
  • Add the hunter kit
  • Rebalance existing kits
  • Fix pre-round damage still applying
  • Add cleanup functions to some of the kits that lacked them
  • Add an event to test kill powers on kits

Changelog

Attachment
0
DevCmb
  • Added the fisher kit
  • Fixed my database not working at all (most of the time was spent on this 😭)
  • Fix the kit display from being slighly offset because of rounding errors
  • Add a cleanup field to kits that gets called in between rounds
  • Sort the kit selector by the ID in alphabetic order

Changelog

Attachment
0
DevCmb
  • Added the bomber kit which allows the player to get a nuke tnt with a high blast radius but low damage
  • Fix FAWE dependency
  • Fix debug logging not displaying the correct source line (it’d always say it comes from the DebugUtil class)
  • Actually store the outcome of a match
  • Make it so you can’t use your ability until the round starts
  • Make tnt auto light when placed

Changelog

Attachment
0
DevCmb
  • Add the walls to the crumble game which go away after a short grace period (still doesn’t have a countdown or anything but thats for another time)
  • Added some debugging tools which allow me to trigger any game-specific event with a single command without needing to edit that command file (very barebones still)

Changelog

Attachment
Attachment
0
DevCmb

A bunch of bugfixes I noticed when doing a final playtesting round

Changelog

Attachment
0
DevCmb

Update the cutscene system to use pigs for the player to mount instead of allowing them to fly (survivial mode players would get kicked for flying)

Also did an internal change to restructure the database file to use kotlin coroutines instead of yielding the thread whenever a database action needed to be completed

Finally, added the other 6 spawn arenas for matchups on the warfare map

Changelog

Attachment
0
DevCmb

Add the kit item to the hotbar while in game to allow using the ability (also add the skull for info purposes)

Attachment
0
DevCmb

Implemented the archer kit’s ability and kill effect. Also did a bunch of research on resource pack displays (can be found here) to display above your action bar what your current selected kit is.

Attachment
0
DevCmb

Make the kit selector work and create a system for managing these inventory UIs without sharing the same inventory with multiple people (oversights++)

Attachment
0
DevCmb

Start on the kit selector for the crumble minigame, as well as an internal system for creating itemstacks with left and right click actions to save myself a lot of hassle whenever I need to trigger some event off an item click

Attachment
0
DevCmb

Update the engine for team spawning. Also added the crumble specific stuff for map spawning.

This devlog took so long because I was trying to make a repeatable system for spawns instead of just passing it off to an abstract method. This is ridiculous because each game would have its own spawning rulesets instead of being consistent.

Attachment
0
DevCmb

Update the cutscene system to properly display the chat message, add the first step of the crumble cutscene, and add a world saver so I can actually save the maps without needing to do it manually

Attachment
0
DevCmb

Started on the cutscene system that plays before a game to explain rules and whatnot.

Attachment
0
DevCmb

Add a simple map loading system that uses kotlin coroutines to minimize latency

Attachment
0
DevCmb

Start the general game engine systems I’ll use to make the rest of the games

Attachment
0
DevCmb

Add a team assignment command and tweak the db structure a bit to make it so you can mark a player as not whitelisted while not deleting their data

Attachment
0
DevCmb

Get the project setup with a database and teams system

Attachment
0
DevCmb

Shipped this project!

Hours: 38.35
Cookies: 🍪 906
Multiplier: 23.62 cookies/hr

I made a minecraft server plugin for a continuous stream of parkour gameplay! I took inspirations from MCC’s Parkour Warrior and Ace Race gamemodes and made it into something unique. This is my second time making a game loop for a minecraft server, but this time I did it way cleaner and in kotlin instead of plain java. Getting worldedit to behave was a challenge but I surpassed those challenges anyways!!! Happy to finally have this done

DevCmb

Make the starting block crumble to prevent AFK players from just stalling out the game. Also added a bunch of documentation and a really in-depth setup guide.

Attachment
0
DevCmb

Added elimination to the game, finally closing the game loop to be played infinitely. There are surely some issues still (leaving doesn’t eliminate the player, the modifier system still doesn’t exist, etc), but for now, the actual loop is finished!!!

Attachment
0
DevCmb

Added a system where obstacles crumble away after a certain amount of time. This is going to be used for eliminating players, progressively getting faster and faster.

Attachment
0
DevCmb

Add a sidebar to display scores and obstacles completed. With this also comes an objective display system for the player ui delegate so thats why the time isn’t like 30 minutes. also internal changes woohoo!

Attachment
0
DevCmb

Add a scoring system and do more internal changes as per usual

Attachment
0
DevCmb

Add a better debugging structure, an indicator for the items you’re given for a specific course, and migrate from worldedit to FastAsyncWorldEdit (FAWE) since its way faster

Attachment
0
DevCmb

Made the different obstacle types give their respective items, as well as a bunch of tiny changes here and there, but thats to be expected because I never hone in on one thing per devlog lol

0
DevCmb

Added individual stepping of obstacles. Currently there’s only one for testing sake, but im going to add more, as well as some for elytra, riptide tridents, etc.

Attachment
0
DevCmb

Added the pregame countdown, gate opening, and a loop reset command to make testing a bit easier. Hopefully obstacle generation is next

Attachment
0
DevCmb

Add a requirement to obstacle saving where a start and end line must be determined via a line of diamond and redstone blocks. This’ll make it a hell of a lot easier to position when it comes time to need to load the obstacles

Attachment
Attachment
0
DevCmb

Add a subcommand to the obstacle command that lets me load the saved obstacles

Attachment
0
DevCmb

Got a command set up where I can export worldedit selections to schematic files for later implementation. Also did some internal work here and there.

Attachment
0
DevCmb

Added LiteCommands to get some debugging utilities to make template worlds easier to view and edit (editing coming soon trust)

Attachment
0
DevCmb

Get world creation and deletion working, along with removing the multiverse core implementation (with caused this devlog to have way too much time). Also did a bit for the actionbar UI system, but didn’t get really anywhere.

Attachment
0
DevCmb

Start the game loop and add the bossbar UI system to display bossbars and reserve space based on their height

Attachment
0
DevCmb

Do a lot of research and development on a UI system that abuses minecrafts spacing to offset the text negatively, but ultimately I couldn’t figure it out entirely. Along with this brings a better actionbar system

Attachment
0
DevCmb

Setup some basic listeners and do some packet manipulation to give the player hunger and hardcore hearts. Both of these are hidden in a resource pack so they appear as if nothing is there.

Attachment
0
DevCmb

Set up the project with basic boilerplate

Attachment
0
DevCmb

Get the basic Qt window and learn how docks and such work. This is a very ambitious project and im excited to see where I can take it 🔥

Attachment
0
DevCmb

Shipped this project!

Hours: 25.29
Cookies: 🍪 672
Multiplier: 26.59 cookies/hr

I made the thing!!!!! AchievementsMC is all good for v1.0 with a good variety of achievements to start off with. Might revisit the project at some point to give it some updates, but for now, its good 🔥

DevCmb

Do some documentation and put the plugin onto modrinth

Attachment
0
DevCmb

Finally got around to getting achievements to give rewards! This is probably the last thing for the project but maybe theres some glaring issues I’ll fix later™️

Attachment
Attachment
0
DevCmb

Player achievements page, new achievements, and internal restructuring

Attachment
0
DevCmb

Add more achievements, bump invcontrol to the next version because it was broken, and fix CI builds

Attachment
0
DevCmb

Add new achievements for you to create

Attachment
0
DevCmb

Add the ability to remove achievements, as well as the backend database stuff that is needed (only additions can be replicated on server close, not deletions)

Attachment
0
DevCmb

Add the ability to edit achievements, as well as this info popup to show the current fields on the main page.

Attachment
0
DevCmb

Finally get the actual creation mechanisms working! It took a while since I had a bug in the underlying framework (thanks past DevCmb) that I had to take a detour to debug and fix, but it works!!!! Editing should use the same basic menu so it shouldn’t take as long as this 🔥

Attachment
Attachment
0
DevCmb

Fix a bunch of bugs that I overlooked when initially making the project.

Attachment
0
DevCmb

Got the reward item input to request the user for an item, and update if the user actually provides it

Attachment
0
DevCmb

Add database replication for achievements, and add this final setting which can’t be updated yet™️

Attachment
0
DevCmb

Add more input items

Attachment
0
DevCmb

Started the configuration items in the achievement editor, though it definitely needs more work.

Attachment
0
DevCmb

Set up player data and achievement incrementation. Also made the logic to replicate the player data back to the database in the anc_progressions table

Attachment
0
DevCmb

Start on the actual achievement classes with a barebones Kill Hostile Mobs one to get the ball rolling. Still need to actually make the db logic to store this information, but thats future me’s problem 🫡

Attachment
0
DevCmb

Get my UI library implemented and cook up this UI. The time for this devlog is higher than normal because of how many other things I tried to do to get UI working, but nothing else was easy 😭

Thank you DevCmb for the InvControl library.
Hm I wonder why I made that 🤔

Attachment
0
DevCmb

Remove the CI builds and include an installation section on the README

Attachment
1

Comments

MeBadDev
MeBadDev 4 months ago

I love it!

DevCmb

Shipped this project!

Hours: 11.93
Cookies: 🍪 235
Multiplier: 19.66 cookies/hr

Finished up the main features for the project! Its definitely not complete, but its got the basic features that I was intending to make 🫡

Might work on it if i’m out of ideas in the future, but for now, its good!!!

DevCmb

Got CI builds running for deploying to github packages, also expanded the documentation to include core principles and examples

Attachment
Attachment
0
DevCmb

Spent a while debugging while you could insert items into frames with hotkeys but not take them out, turns out currentItem is only set if your mouse is actually hovering over an item, its not the affected item. Thats 30m im never getting back 🫡

Attachment
0
DevCmb

Made item maps which allow you to pass in an array of items (yes its not actually a HashMap, screw you). This is to make it more dynamic as well as allow for something that other libraries I’ve seen don’t really support.

Attachment
0
DevCmb

Make a little aim trainer game for both testing and fixing some bugs and as an example for anyone who wants to use this library

0
DevCmb

Got a testing plugin up and running to hopefully reduce the amount of devlogs that are exclusively code for their images. This also proves my code isn’t terrible because it literally works the first time I’m testing it 🔥 (minus one small unchecked error where you register items on a page before that page is registered)

Attachment
0
DevCmb

I tried making it a maven submodule, and the second I found any resistance to that idea, I switched over to gradle which broke everything. I tried fixing it, I failed. I git rollback’d the whole thing and just did it in maven with a guide. Thank you build systems of the 21st century

Attachment
0
DevCmb

Refactored the codebase to use a page-based system instead of just throwing together items whenever you feel like it

Attachment
0
DevCmb

Wrote the base for many of the systems I hope to implement in the future. Implemented the base item, chest inventory ui, listeners for buttons, and a registry to keep track of button items.

Attachment
2

Comments

Nibbles
Nibbles 4 months ago

kot;lin!!! :D

pierreide10
pierreide10 4 months ago

making plugins in kotlin ???

DevCmb

Start the project with a very barebones function to kickstart everything else

Attachment
0
DevCmb

Got the basic command controller set up as well as a database intermediary to prevent copious database calls (pretty barebones and will be expanded soon™️)

Attachment
2

Comments

Mr.Chicken
Mr.Chicken 5 months ago

Hi DevCmb

Nibbles
Nibbles 5 months ago

what if instead you expand it Right Now™️ devcmb im watching your stream why you playin bloons td 6

DevCmb

Got some of the behind-the-scenes systems working, mainly with the ControllerDelegate and Database module. Also got the version display up and running but that’s standard with all my mc projects.

Attachment
Attachment
0