-
-
Notifications
You must be signed in to change notification settings - Fork 51
BreweryX (v3.3.6+) Support #430
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
b681351
7820362
fceacdb
dadac47
b89a1d8
92b1f86
ab820b4
09bc856
3e3b437
89399ef
477394b
1814caa
529119c
4c78d7f
e1cfe5e
8d1993d
45d41d0
9862906
cdaf64f
68644f0
827ed9b
0e573d7
ba65850
49b681d
e96c8c4
2e87411
877bd48
2dfb00a
740d367
a659be6
9254240
cf57064
ed22938
5f92726
61b9c38
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package com.denizenscript.depenizen.bukkit.bridges; | ||
|
||
import com.denizenscript.denizencore.events.ScriptEvent; | ||
import com.denizenscript.denizencore.objects.ObjectFetcher; | ||
import com.denizenscript.depenizen.bukkit.Bridge; | ||
import com.denizenscript.depenizen.bukkit.events.breweryx.BreweryChatDistortScriptEvent; | ||
import com.denizenscript.depenizen.bukkit.events.breweryx.BreweryDrinkScriptEvent; | ||
import com.denizenscript.depenizen.bukkit.events.breweryx.BreweryIngredientAddScriptEvent; | ||
import com.denizenscript.depenizen.bukkit.events.breweryx.BreweryModifyBrewScriptEvent; | ||
import com.denizenscript.depenizen.bukkit.objects.breweryx.BreweryRecipeTag; | ||
import com.denizenscript.depenizen.bukkit.properties.breweryx.BreweryPlayerExtensions; | ||
|
||
public class BreweryXBridge extends Bridge { | ||
@Override | ||
public void init() { | ||
ScriptEvent.registerScriptEvent(BreweryDrinkScriptEvent.class); | ||
ScriptEvent.registerScriptEvent(BreweryModifyBrewScriptEvent.class); | ||
ScriptEvent.registerScriptEvent(BreweryIngredientAddScriptEvent.class); | ||
ScriptEvent.registerScriptEvent(BreweryChatDistortScriptEvent.class); | ||
ObjectFetcher.registerWithObjectFetcher(BreweryRecipeTag.class, BreweryRecipeTag.tagProcessor); | ||
BreweryPlayerExtensions.register(); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
package com.denizenscript.depenizen.bukkit.events.breweryx; | ||
|
||
import com.denizenscript.denizen.events.BukkitScriptEvent; | ||
import com.denizenscript.denizen.objects.PlayerTag; | ||
import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; | ||
import com.denizenscript.denizencore.objects.ObjectTag; | ||
import com.denizenscript.denizencore.objects.core.ElementTag; | ||
import com.denizenscript.denizencore.scripts.ScriptEntryData; | ||
import com.dre.brewery.api.events.PlayerChatDistortEvent; | ||
import org.bukkit.event.EventHandler; | ||
import org.bukkit.event.Listener; | ||
|
||
public class BreweryChatDistortScriptEvent extends BukkitScriptEvent implements Listener { | ||
|
||
// <--[event] | ||
// @Events | ||
// brewery chat distort | ||
// | ||
// @Cancellable true | ||
// | ||
// @Triggers when a drunk brewery player's chat is distorted. | ||
// | ||
// @Context | ||
// <context.message> Returns the message to be sent after being distorted. | ||
// <context.original_message> Returns the original message before being distorted. | ||
// <context.player> Returns a PlayerTag of the player that had their chat distorted. | ||
// | ||
// @Determine | ||
// ElementTag to set the message to be sent after being distorted. | ||
// | ||
// @Plugin Depenizen, BreweryX | ||
// | ||
// @Player Always. | ||
// | ||
// @Group Depenizen | ||
// | ||
// --> | ||
public BreweryChatDistortScriptEvent() { | ||
registerCouldMatcher("brewery chat distort"); | ||
} | ||
|
||
public PlayerChatDistortEvent event; | ||
|
||
@Override | ||
public ScriptEntryData getScriptEntryData() { | ||
return new BukkitScriptEntryData(event.getPlayer()); | ||
} | ||
|
||
@Override | ||
public ObjectTag getContext(String name) { | ||
return switch (name) { | ||
case "message" -> new ElementTag(event.getDistortedMessage()); | ||
case "original_message" -> new ElementTag(event.getWrittenMessage()); | ||
default -> super.getContext(name); | ||
}; | ||
} | ||
|
||
@Override | ||
public boolean handleDetermination(ScriptPath path, String prefix, ObjectTag value) { | ||
if (prefix.equals("message")) { | ||
event.setDistortedMessage(value.asElement().asString()); | ||
return true; | ||
} | ||
return super.handleDetermination(path, prefix, value); | ||
} | ||
Comment on lines
+58
to
+65
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Determinations aren't handled that way anymore, there's |
||
|
||
@EventHandler | ||
public void onChatDistort(PlayerChatDistortEvent event) { | ||
this.event = event; | ||
fire(event); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
package com.denizenscript.depenizen.bukkit.events.breweryx; | ||
|
||
|
||
import com.denizenscript.denizen.events.BukkitScriptEvent; | ||
import com.denizenscript.denizen.objects.ItemTag; | ||
import com.denizenscript.denizen.objects.PlayerTag; | ||
import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; | ||
import com.denizenscript.denizencore.objects.ObjectTag; | ||
import com.denizenscript.denizencore.scripts.ScriptEntryData; | ||
import com.denizenscript.depenizen.bukkit.objects.breweryx.BreweryRecipeTag; | ||
import com.dre.brewery.api.events.brew.BrewDrinkEvent; | ||
import org.bukkit.event.EventHandler; | ||
import org.bukkit.event.Listener; | ||
|
||
public class BreweryDrinkScriptEvent extends BukkitScriptEvent implements Listener { | ||
|
||
// <--[event] | ||
// @Events | ||
// brewery drink | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This feels a little unclear, maybe |
||
// | ||
// @Cancellable true | ||
// | ||
// @Triggers when a player drinks a potion that is considered a BreweryX potion. | ||
// | ||
// @Context | ||
// <context.item> Returns an ItemTag of the potion that was drunk. | ||
// <context.recipe> Returns an BreweryRecipeTag of the recipe that the brew is based off of. | ||
// <context.player> Returns a PlayerTag of the player that drank the brew. | ||
// | ||
// @Plugin Depenizen, BreweryX | ||
// | ||
// @Player Always. | ||
// | ||
// @Group Depenizen | ||
// | ||
// --> | ||
public BreweryDrinkScriptEvent() { | ||
registerCouldMatcher("brewery drink"); | ||
} | ||
|
||
public BrewDrinkEvent event; | ||
|
||
@Override | ||
public ScriptEntryData getScriptEntryData() { | ||
return new BukkitScriptEntryData(event.getPlayer()); | ||
} | ||
|
||
@Override | ||
public ObjectTag getContext(String name) { | ||
return switch (name) { | ||
case "recipe" -> new BreweryRecipeTag(event.getBrew().getCurrentRecipe()); | ||
case "item" -> new ItemTag(event.getBrew().createItem(event.getBrew().getCurrentRecipe(), false)); | ||
default -> super.getContext(name); | ||
}; | ||
} | ||
|
||
@EventHandler | ||
public void onBrewDrinkEvent(BrewDrinkEvent event) { | ||
this.event = event; | ||
fire(event); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
package com.denizenscript.depenizen.bukkit.events.breweryx; | ||
|
||
import com.denizenscript.denizen.events.BukkitScriptEvent; | ||
import com.denizenscript.denizen.objects.ItemTag; | ||
import com.denizenscript.denizen.objects.LocationTag; | ||
import com.denizenscript.denizen.objects.PlayerTag; | ||
import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; | ||
import com.denizenscript.denizencore.objects.ObjectTag; | ||
import com.denizenscript.denizencore.objects.core.ElementTag; | ||
import com.denizenscript.denizencore.scripts.ScriptEntryData; | ||
import com.dre.brewery.api.events.IngedientAddEvent; | ||
import org.bukkit.event.EventHandler; | ||
import org.bukkit.event.Listener; | ||
|
||
public class BreweryIngredientAddScriptEvent extends BukkitScriptEvent implements Listener { | ||
|
||
// <--[event] | ||
// @Events | ||
// brewery ingredient add | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same here, maybe |
||
// | ||
// @Cancellable true | ||
// | ||
// @Triggers when a player adds an ingredient to a cauldron. | ||
// | ||
// @Context | ||
// <context.item> Returns an ItemTag of the ingredient that was added. | ||
// <context.location> Returns a LocationTag of the cauldron. | ||
// <context.player> Returns a PlayerTag of the player that added the ingredient. | ||
// <context.take_item> Returns an ElementTag of whether the item should be taken from the player. | ||
// | ||
// @Determine | ||
// ItemTag to set the ingredient that was added. | ||
// ElementTag(Boolean) to set whether the item should be taken from the player. | ||
// | ||
// @Plugin Depenizen, BreweryX | ||
// | ||
// @Player Always. | ||
// | ||
// @Group Depenizen | ||
// | ||
// --> | ||
public BreweryIngredientAddScriptEvent() { | ||
registerCouldMatcher("brewery ingredient add"); | ||
} | ||
|
||
public IngedientAddEvent event; | ||
|
||
@Override | ||
public ScriptEntryData getScriptEntryData() { | ||
return new BukkitScriptEntryData(event.getPlayer()); | ||
} | ||
|
||
@Override | ||
public ObjectTag getContext(String name) { | ||
return switch (name) { | ||
case "location" -> new LocationTag(event.getBlock().getLocation()); | ||
case "item" -> new ItemTag(event.getIngredient()); | ||
case "take_item" -> new ElementTag(event.willTakeItem()); | ||
default -> super.getContext(name); | ||
}; | ||
} | ||
|
||
@Override | ||
public boolean handleDetermination(ScriptPath path, String prefix, ObjectTag value) { | ||
switch (prefix) { | ||
case "item" -> { | ||
event.setIngredient(((ItemTag) value).getItemStack()); | ||
return true; | ||
} | ||
case "take_item" -> { | ||
event.setTakeItem(((ElementTag) value).asBoolean()); | ||
return true; | ||
} | ||
} | ||
return super.handleDetermination(path, prefix, value); | ||
} | ||
|
||
@EventHandler | ||
public void onIngredientAddEvent(IngedientAddEvent event) { | ||
this.event = event; | ||
fire(event); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
package com.denizenscript.depenizen.bukkit.events.breweryx; | ||
|
||
import com.denizenscript.denizen.events.BukkitScriptEvent; | ||
import com.denizenscript.denizen.objects.ItemTag; | ||
import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; | ||
import com.denizenscript.denizencore.objects.ObjectTag; | ||
import com.denizenscript.denizencore.objects.core.ElementTag; | ||
import com.denizenscript.denizencore.scripts.ScriptEntryData; | ||
import com.denizenscript.depenizen.bukkit.objects.breweryx.BreweryRecipeTag; | ||
import com.dre.brewery.api.events.brew.BrewModifyEvent; | ||
import org.bukkit.event.EventHandler; | ||
import org.bukkit.event.Listener; | ||
|
||
public class BreweryModifyBrewScriptEvent extends BukkitScriptEvent implements Listener { | ||
|
||
// <--[event] | ||
// @Events | ||
// brewery brew modify | ||
// | ||
// @Cancellable true | ||
// | ||
// @Triggers When a Brew has been created or modified. | ||
// Usually happens on filling from cauldron, distilling and aging. | ||
// Modifications to the Brew or the PotionMeta can be done now | ||
// Cancelling reverts the Brew to the state it was before the modification | ||
Comment on lines
+22
to
+25
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Currently this event only really lets you access the data, not modify it - from what I can see Brewery only lets you get and modify the |
||
// | ||
// @Context | ||
// <context.player> Returns a PlayerTag of the player that modified the brew. | ||
// <context.recipe> Returns an BreweryRecipeTag of the recipe that the brew is based off of. | ||
// <context.item> Returns an ItemTag of the potion. | ||
// <context.type> Returns an ElementTag of the type of modification. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If the event is kept, this should explain what the types are (can be a link to docs/javadocs if brewery has any for these types, or otherwise just a manual list in the meta is fine). |
||
// | ||
// @Plugin Depenizen, BreweryX | ||
// | ||
// @Player Always. | ||
// | ||
// @Group Depenizen | ||
// | ||
// --> | ||
public BreweryModifyBrewScriptEvent() { | ||
registerCouldMatcher("brewery brew modify"); | ||
} | ||
|
||
public BrewModifyEvent event; | ||
|
||
@Override | ||
public ScriptEntryData getScriptEntryData() { | ||
return new BukkitScriptEntryData(event.getPlayer()); | ||
} | ||
|
||
@Override | ||
public ObjectTag getContext(String name) { | ||
return switch (name) { | ||
case "recipe" -> new BreweryRecipeTag(event.getBrew().getCurrentRecipe()); | ||
case "item" -> new ItemTag(event.getBrew().createItem(event.getBrew().getCurrentRecipe(), false)); | ||
case "type" -> new ElementTag(event.getType()); | ||
default -> super.getContext(name); | ||
}; | ||
} | ||
|
||
@EventHandler | ||
public void onBrewModifyEvent(BrewModifyEvent event) { | ||
this.event = event; | ||
fire(event); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to document the prefix here, see existing event's meta docs for examples.