Skip to content

Commit

Permalink
Add events, refactor (#1207)
Browse files Browse the repository at this point in the history
- Adds NoteBlock events
  - Includes Change and Play events
- Adds Minecart Update event
- Adds consistent formatting to CommonEventHandler
  • Loading branch information
democat3457 committed Mar 21, 2021
1 parent 21d37e3 commit 20c1811
Show file tree
Hide file tree
Showing 14 changed files with 438 additions and 167 deletions.
3 changes: 1 addition & 2 deletions .gitpod.Dockerfile
Expand Up @@ -13,5 +13,4 @@ USER gitpod

RUN bash -c ". /home/gitpod/.sdkman/bin/sdkman-init.sh \
&& sdk upgrade \
&& sdk install java 8.0.265-open \
&& sdk uninstall java 11.0.6.fx-zulu"
&& sdk install java 8.0.282-open"
5 changes: 3 additions & 2 deletions .gitpod.yml
Expand Up @@ -4,8 +4,9 @@ image:
tasks:
- before: . /home/gitpod/.sdkman/bin/sdkman-init.sh
- init: sdk upgrade
- command: sdk uninstall java 11.0.6.fx-zulu
- command: sdk install java 8.0.265-open
- command: sdk uninstall java 11.0.10.fx-zulu
- command: sdk install java 11.0.10.hs-adpt
- command: sdk install java 8.0.282-open
- prebuild: ./gradlew build

github:
Expand Down
@@ -1,6 +1,5 @@
package crafttweaker.api.event;


import crafttweaker.annotations.ZenRegister;
import crafttweaker.api.block.IBlock;
import crafttweaker.api.block.IBlockState;
Expand Down
Expand Up @@ -232,6 +232,18 @@ public interface IEventManager {
@ZenMethod
IEventHandle onMinecartInteract(IEventHandler<MinecartInteractEvent> ev);

@ZenMethod
IEventHandle onMinecartUpdate(IEventHandler<MinecartUpdateEvent> ev);

@ZenMethod
IEventHandle onNoteBlock(IEventHandler<INoteBlockEvent> ev);

@ZenMethod
IEventHandle onNoteBlockChange(IEventHandler<NoteBlockChangeEvent> ev);

@ZenMethod
IEventHandle onNoteBlockPlay(IEventHandler<NoteBlockPlayEvent> ev);

@ZenMethod
IEventHandle onPlayerCloseContainer(IEventHandler<PlayerCloseContainerEvent> ev);

Expand Down
@@ -0,0 +1,23 @@
package crafttweaker.api.event;

import crafttweaker.annotations.ZenRegister;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;
import stanhebben.zenscript.annotations.ZenSetter;

@ZenClass("crafttweaker.event.INoteBlockEvent")
@ZenRegister
public interface INoteBlockEvent extends IBlockEvent {

@ZenGetter("note")
String getNote();

@ZenSetter("note")
void setNote(String note, String octave);

@ZenGetter("octave")
String getOctave();

@ZenGetter("noteId")
int getNoteId();
}
Expand Up @@ -128,6 +128,7 @@ public void clear() {
elLivingKnockBack.clear();
elMinecartCollision.clear();
elMinecartInteract.clear();
elMinecartUpdate.clear();
elPlayerCloseContainer.clear();
elPlayerItemPickup.clear();
elPlayerVisibility.clear();
Expand Down Expand Up @@ -158,6 +159,9 @@ public void clear() {
elPlayerCloneEvent.clear();
elBlockNeighborNotify.clear();
elPortalSpawn.clear();
elNoteBlock.clear();
elNoteBlockChange.clear();
elNoteBlockPlay.clear();
}

// ##########################
Expand Down Expand Up @@ -1458,6 +1462,82 @@ public void publishMinecartInteract(MinecartInteractEvent event) {
elMinecartInteract.publish(event);
}

// ###############################
// ### MinecartUpdateEvent ###
// ###############################

private final EventList<MinecartUpdateEvent> elMinecartUpdate = new EventList<>();

@Override
public IEventHandle onMinecartUpdate(IEventHandler<MinecartUpdateEvent> ev) {
return elMinecartUpdate.add(ev);
}

public boolean hasMinecartUpdate() {
return elMinecartUpdate.hasHandlers();
}

public void publishMinecartUpdate(MinecartUpdateEvent event) {
elMinecartUpdate.publish(event);
}

// ###############################
// ### NoteBlockEvent ###
// ###############################

private final EventList<INoteBlockEvent> elNoteBlock = new EventList<>();

@Override
public IEventHandle onNoteBlock(IEventHandler<INoteBlockEvent> ev) {
return elNoteBlock.add(ev);
}

public boolean hasNoteBlock() {
return elNoteBlock.hasHandlers();
}

public void publishNoteBlock(INoteBlockEvent event) {
elNoteBlock.publish(event);
}

// ###############################
// ### NoteBlockChangeEvent ###
// ###############################

private final EventList<NoteBlockChangeEvent> elNoteBlockChange = new EventList<>();

@Override
public IEventHandle onNoteBlockChange(IEventHandler<NoteBlockChangeEvent> ev) {
return elNoteBlockChange.add(ev);
}

public boolean hasNoteBlockChange() {
return elNoteBlockChange.hasHandlers();
}

public void publishNoteBlockChange(NoteBlockChangeEvent event) {
elNoteBlockChange.publish(event);
}

// ###############################
// ### NoteBlockPlayEvent ###
// ###############################

private final EventList<NoteBlockPlayEvent> elNoteBlockPlay = new EventList<>();

@Override
public IEventHandle onNoteBlockPlay(IEventHandler<NoteBlockPlayEvent> ev) {
return elNoteBlockPlay.add(ev);
}

public boolean hasNoteBlockPlay() {
return elNoteBlockPlay.hasHandlers();
}

public void publishNoteBlockPlay(NoteBlockPlayEvent event) {
elNoteBlockPlay.publish(event);
}

// ###################################
// ### PlayerCloseContainerEvent ###
// ###################################
Expand Down
@@ -0,0 +1,12 @@
package crafttweaker.api.event;

import crafttweaker.annotations.ZenRegister;
import crafttweaker.api.world.IBlockPos;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;

@ZenClass("crafttweaker.event.MinecartUpdateEvent")
@ZenRegister
public interface MinecartUpdateEvent extends IMinecartEvent, IEventPositionable {

}
@@ -0,0 +1,16 @@
package crafttweaker.api.event;

import crafttweaker.annotations.ZenRegister;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;

@ZenClass("crafttweaker.event.NoteBlockChangeEvent")
@ZenRegister
public interface NoteBlockChangeEvent extends INoteBlockEvent, IEventCancelable {

@ZenGetter("oldNote")
String getOldNote();

@ZenGetter("oldOctave")
String getOldOctave();
}
@@ -0,0 +1,17 @@
package crafttweaker.api.event;

import crafttweaker.annotations.ZenRegister;
import stanhebben.zenscript.annotations.ZenClass;
import stanhebben.zenscript.annotations.ZenGetter;
import stanhebben.zenscript.annotations.ZenSetter;

@ZenClass("crafttweaker.event.NoteBlockPlayEvent")
@ZenRegister
public interface NoteBlockPlayEvent extends INoteBlockEvent, IEventCancelable {

@ZenGetter("instrument")
String getInstrument();

@ZenSetter("instrument")
void setInstrument(String instrument);
}

0 comments on commit 20c1811

Please sign in to comment.