You should use a WeakHashMap<Player, YourData> so that you don't hold on to players after they leave.
I believe EulerAngles expect radians, however the summon command expects degrees. You have to convert the degrees to radians.
The easiest way would be to to spawn the dragon without any AI and just set its velocity to the player's direction multiplied by some arbitrary...
Inconsistent indentation on line 165. Add two spaces before “Completionist” You should be using a YAML validator.
Sounds like the XY problem. What exactly are you trying to achieve with this enum/interface thing?
@sebcio98 Ah I understand. So what you do is see if the player's Y is 1 greater than the top most solid block under the player. So, the player is...
This is how I'd personally go about it — Listen to the EntityDamageByEntityEvent Add the player into a list Listen for the PlayerMoveEvent Ensure...
It was an example. I don't really want to facilitate copy + pasting code with no effort and it actually working as expected.
@timtower @ItsComits Why would it depend on the content? Maps store the pointers to the data you put in them, so regardless of what you put in...
Oof thats way too complex. Instead of cancelling the PlayerMoveEvent, try this: @EventHandler public void onMove(PlayerMoveEvent event){...
Add the locations of the spawned blocks into a list and then allow them to break those blocks in the BlockBreakEvent.
Do not despair! What you need to do is listen for the InventoryClickEvent, then set up the block placement!
Add this potion effect to the entity:...
Your order of arguments is wrong. CommandSender is before Command. This is why you should always put the @Override annotation.
Using a Player is fine. Just remove the Player from the arraylist in the PlayerQuitEvent.
Separate names with a comma.