#How to prevent sleeping

1 messages · Page 1 of 1 (latest)

rich loom
#

I'm trying to prevent sleeping unless the chunk is 'protected' by an interdiction torch. The following code breaks the ability to right click into bed all together.

ForgeEvents.onEvent("net.minecraftforge.event.entity.player.PlayerSleepInBedEvent", event => {
     var entity = event.getEntity()
     var pos = event.pos
     var level = entity.getLevel()
     if (!global.getSafeAreas(level).chunks.some(safeChunk => pos.getRegionX() == safeChunk.getRegionX() && pos.getRegionZ() == safeChunk.getRegionZ())) {
          entity.tell('You cannot sleep as the current chunk is not protected by an interdiction torch!')
          event.setCanceled(true)
     }
})

global.safeAreas = []
global.getSafeAreas = (level) => {
     var area = null
     global.safeAreas.forEach(safeArea => {
         if (safeArea.dimension == level.dimension)
             area = safeArea
     })
     if (area == null) {
         area = {dimension: level.dimension, chunks: []}
         global.safeAreas.push(area)
     }
     return area
 }

leaden hamletBOT
#

Once your ticket has been resolved, please close it with </ticket close:1054771505520717835> command!

rich loom
#

finally figured something else out