Skip to content

Register Event Listener

Potato Destroyer edited this page Mar 24, 2018 · 2 revisions

Register Event Listener

registerCommands {
	command("aaa") {
		subCommand("a") { _, _ ->
			registerEvent {
				event<PlayerJoinEvent> {
					player sendMessage ChatColor.AQUA * "Hello,${player.name}!"
				}
			}
			CommandResult.Successful
		}
		val event = createEvent<PlayerBedEnterEvent> {
			player sendMessage ""
		}
		subCommand("b") { _, _ ->
    		registerEvent(event)
			CommandResult.Successful
		}
		subCommand("c") { _, _ ->
			unregisterEvent(event)
			CommandResult.Successful
		}
		subCommand("d") { _, _ ->
			registerEvents {
				event<PlayerBedLeaveEvent> { }
				event<PlayerAdvancementDoneEvent> { }
				//...
			}
			CommandResult.Successful
		}
	}
}

Each of event listeners can be register or unregister dynamically. As code above, they are registered or unregistered as commands execute.

createEvent<T:Event>

This fuction is used to create PackingEvent. The scope after this function is The Event.()->Unit.

registerEvent

Register a event.
This function have two kinds of parameters.

  • PackingEvent
  • ()->PackingEvent

You don't need to new PackingEvent by your self, we provides event<T> function to help you.

regsterEvents

This function provides dsl to register event listenrs, you can register many listeners once.

unregisterEvent

This function is used to unregister listener, you have to save PackingEvent's reference as you do so.

Clone this wiki locally