I don't really want a mod, but here's a challenge I've never quite conquered. This is mostly due to issues with dynamic lighting. Make a block, that when right clicked, will increase light emittance, and when left clicked, will decrease. Hint: you will have to use a Tile Entity! Blocks are "Singletons" which means only one instance of the block is ever made. This means that Block classes CANNOT store data (including a light level!) because it would automatically apply over all the blocks. So you create a tile entity, which is a data storage/ticking class that is unique to a specific block at a specific world location. It can write data to NBT and update every tick (if you implement ITickable). You can access a Tile Entity's data by using World.getTileEntity (or something like that) inside a method within the block class. For example, onBlockRightClicked.
Hope you succeed in what I still cannot figure out.
@hiotewdew I completed the challenge! I learned A LOT! I didn't even need a TileEntity, I did it in the Block class with some blockstates. Please check your private messages/ the first post in this thread for a download link! I added a creative tab, there you should find a block called LightBlock. I didn't implement the left click, but if you right-click 15 times, it will return to 0. The texture even changes dynamically!