├── .github └── FUNDING.yml ├── .gitignore ├── .gitmodules ├── CONTRIBUTING.md ├── Docs ├── BukkitPlugins.md └── Bungee.md ├── LICENSE.txt ├── README.md ├── pom.xml └── src └── main ├── java └── com │ └── denizenscript │ └── depenizen │ └── bukkit │ ├── Bridge.java │ ├── Depenizen.java │ ├── bridges │ ├── ASkyBlockBridge.java │ ├── AreaShopBridge.java │ ├── AriKeysBridge.java │ ├── BetonQuestBridge.java │ ├── BigDoorsBridge.java │ ├── BossShopBridge.java │ ├── ChestShopBridge.java │ ├── CoreProtectBridge.java │ ├── CrackShotBridge.java │ ├── EffectLibBridge.java │ ├── EssentialsBridge.java │ ├── FactionsBridge.java │ ├── GriefPreventionBridge.java │ ├── JobsBridge.java │ ├── LibsDisguisesBridge.java │ ├── LuckPermsBridge.java │ ├── MagicSpellsBridge.java │ ├── McMMOBridge.java │ ├── MobArenaBridge.java │ ├── MythicKeysBridge.java │ ├── MythicMobsBridge.java │ ├── NoCheatPlusBridge.java │ ├── NoteBlockAPIBridge.java │ ├── OpenTerrainGeneratorBridge.java │ ├── PVPArenaBridge.java │ ├── PVPStatsBridge.java │ ├── PlaceholderAPIBridge.java │ ├── PlayerPointsBridge.java │ ├── PlotSquaredBridge.java │ ├── QuestsBridge.java │ ├── ResidenceBridge.java │ ├── SentinelBridge.java │ ├── ShopkeepersBridge.java │ ├── SkillAPIBridge.java │ ├── TerrainControlBridge.java │ ├── TownyBridge.java │ ├── TownyChatBridge.java │ ├── VampireBridge.java │ ├── ViaVersionBridge.java │ ├── ViveCraftBridge.java │ ├── VotifierBridge.java │ ├── WorldEditBridge.java │ └── WorldGuardBridge.java │ ├── bungee │ ├── BungeeBridge.java │ ├── BungeeClientHandler.java │ ├── BungeePacketIn.java │ ├── BungeePacketOut.java │ ├── NettyExceptionHandler.java │ └── packets │ │ ├── in │ │ ├── AddServerPacketIn.java │ │ ├── KeepAlivePacketIn.java │ │ ├── PlayerJoinPacketIn.java │ │ ├── PlayerQuitPacketIn.java │ │ ├── PlayerSwitchServerPacketIn.java │ │ ├── ProxyCommandPacketIn.java │ │ ├── ProxyPingPacketIn.java │ │ ├── ReadTagPacketIn.java │ │ ├── RemoveServerPacketIn.java │ │ ├── RunCommandsPacketIn.java │ │ ├── RunScriptPacketIn.java │ │ ├── TagResponsePacketIn.java │ │ └── YourInfoPacketIn.java │ │ └── out │ │ ├── ControlsProxyCommandPacketOut.java │ │ ├── ControlsProxyPingPacketOut.java │ │ ├── ExecuteCommandPacketOut.java │ │ ├── ExecutePlayerCommandPacketOut.java │ │ ├── KeepAlivePacketOut.java │ │ ├── MyInfoPacketOut.java │ │ ├── ProxyCommandResultPacketOut.java │ │ ├── ProxyPingResultPacketOut.java │ │ ├── RedirectPacketOut.java │ │ └── redirectable │ │ ├── ReadTagPacketOut.java │ │ ├── RunCommandsPacketOut.java │ │ ├── RunScriptPacketOut.java │ │ └── TagResponsePacketOut.java │ ├── clientizen │ ├── ClientizenBridge.java │ ├── ClientizenEventScriptEvent.java │ ├── commands │ │ └── ClientRunCommand.java │ └── network │ │ ├── ClientizenPacketIn.java │ │ ├── ClientizenPacketOut.java │ │ ├── NetworkManager.java │ │ └── packets │ │ ├── FireEventPacketIn.java │ │ ├── ReceiveConfirmationPacketIn.java │ │ ├── RunClientScriptPacketOut.java │ │ └── SetScriptsPacketOut.java │ ├── commands │ ├── bossshop │ │ └── BossShopCommand.java │ ├── bungee │ │ ├── BungeeCommand.java │ │ ├── BungeeExecuteCommand.java │ │ ├── BungeeRunCommand.java │ │ └── BungeeTagCommand.java │ ├── effectlib │ │ └── EffectLibCommand.java │ ├── jobs │ │ └── JobsCommand.java │ ├── libsdisguises │ │ └── LibsDisguiseCommand.java │ ├── mcmmo │ │ └── McMMOCommand.java │ ├── mobarena │ │ └── MobArenaCommand.java │ ├── mythicmobs │ │ ├── MythicSignalCommand.java │ │ ├── MythicSkillCommand.java │ │ ├── MythicSpawnCommand.java │ │ └── MythicThreatCommand.java │ ├── noteblockapi │ │ └── NBSCommand.java │ ├── playerpoints │ │ └── PlayerPointsCommand.java │ ├── quests │ │ └── QuestsCommand.java │ ├── vivecraft │ │ └── ViveMirrorCommand.java │ ├── worldedit │ │ └── WorldEditCommand.java │ └── worldguard │ │ └── RegionCommand.java │ ├── events │ ├── areashop │ │ ├── AreaShopBoughtScriptEvent.java │ │ ├── AreaShopExpiresScriptEvent.java │ │ ├── AreaShopRentedScriptEvent.java │ │ ├── AreaShopResoldScriptEvent.java │ │ └── AreaShopSoldScriptEvent.java │ ├── arikeys │ │ ├── AriKeysKeyPressScriptEvent.java │ │ └── AriKeysKeyReleaseScriptEvent.java │ ├── askyblock │ │ ├── PlayerCompletesSkyBlockChallengeScriptEvent.java │ │ ├── PlayerEntersSkyBlockScriptEvent.java │ │ ├── PlayerExitsSkyBlockScriptEvent.java │ │ ├── SkyBlockCreatedScriptEvent.java │ │ └── SkyBlockResetScriptEvent.java │ ├── bigdoors │ │ └── BigDoorsDoorTogglesScriptEvent.java │ ├── bungee │ │ ├── BungeePlayerJoinsScriptEvent.java │ │ ├── BungeePlayerQuitsScriptEvent.java │ │ ├── BungeePlayerServerSwitchScriptEvent.java │ │ ├── BungeeProxyServerCommandScriptEvent.java │ │ ├── BungeeProxyServerListPingScriptEvent.java │ │ ├── BungeeServerConnectScriptEvent.java │ │ └── BungeeServerDisconnectScriptEvent.java │ ├── chestshop │ │ ├── ChestShopShopCreatedScriptEvent.java │ │ ├── ChestShopShopDeletedScriptEvent.java │ │ └── ChestShopTransactionScriptEvent.java │ ├── crackshot │ │ ├── CrackShotLandmineTriggerEvent.java │ │ ├── CrackShotPlayerFinishesReloadingWeaponEvent.java │ │ ├── CrackShotPlayerFiresAutomaticWeaponEvent.java │ │ ├── CrackShotPlayerFiresProjectileEvent.java │ │ ├── CrackShotPlayerPlacesLandmineEvent.java │ │ ├── CrackShotPlayerStartsFiringWeaponEvent.java │ │ ├── CrackShotPlayerStartsReloadingWeaponEvent.java │ │ ├── CrackShotPlayerTogglesWeaponAttachmentEvent.java │ │ ├── CrackShotPlayerZoomsWeaponScopeEvent.java │ │ ├── CrackShotWeaponCausesExplosionEvent.java │ │ └── CrackShotWeaponDamageEntityEvent.java │ ├── essentials │ │ ├── PlayerAFKStatusScriptEvent.java │ │ ├── PlayerBalanceChangeScriptEvent.java │ │ ├── PlayerGodModeStatusScriptEvent.java │ │ ├── PlayerJailStatusScriptEvent.java │ │ └── PlayerMuteStatusScriptEvent.java │ ├── griefprevention │ │ ├── GPClaimChangedScriptEvent.java │ │ ├── GPClaimCreatedScriptEvent.java │ │ ├── GPClaimDeletedScriptEvent.java │ │ └── GPClaimEnterEvent.java │ ├── jobs │ │ ├── JobsJobsExpGainScriptEvent.java │ │ ├── JobsJobsJoinScriptEvent.java │ │ ├── JobsJobsLeaveScriptEvent.java │ │ ├── JobsJobsLevelUpScriptEvent.java │ │ └── JobsJobsPaymentScriptEvent.java │ ├── libsdisguises │ │ ├── EntityDisguisesScriptEvent.java │ │ └── EntityUndisguisesScriptEvent.java │ ├── magicspells │ │ ├── ManaChangeScriptEvent.java │ │ ├── SpellCastScriptEvent.java │ │ ├── SpellCastedScriptEvent.java │ │ └── SpellLearnScriptEvent.java │ ├── mcmmo │ │ ├── mcMMOPlayerAbilityActivateScriptEvent.java │ │ ├── mcMMOPlayerAbilityDeactivateScriptEvent.java │ │ ├── mcMMOPlayerGainsXPScriptEvent.java │ │ ├── mcMMOPlayerLevelChangeScriptEvent.java │ │ ├── mcMMOPlayerLevelDownScriptEvent.java │ │ └── mcMMOPlayerLevelUpScriptEvent.java │ ├── mobarena │ │ ├── MobArenaEndsScriptEvent.java │ │ ├── MobArenaStartsScriptEvent.java │ │ └── MobArenaWaveChangesScriptEvent.java │ ├── mythickeys │ │ ├── MythicKeysKeyPressScriptEvent.java │ │ └── MythicKeysKeyReleaseScriptEvent.java │ ├── mythicmobs │ │ ├── MythicMobsDeathEvent.java │ │ ├── MythicMobsDespawnEvent.java │ │ └── MythicMobsSpawnEvent.java │ ├── noteblockapi │ │ └── NoteBlockAPISongEndsScriptEvent.java │ ├── plotsquared │ │ ├── PlayerClaimPlotScriptEvent.java │ │ ├── PlayerEntersPlotScriptEvent.java │ │ ├── PlayerLeavePlotScriptEvent.java │ │ └── PlotClearScriptEvent.java │ ├── pvparena │ │ ├── PVPArenaStartsScriptEvent.java │ │ ├── PlayerExitsPVPArenaScriptEvent.java │ │ ├── PlayerJoinsPVPArenaScriptEvent.java │ │ └── PlayerLeavesPVPArenaScriptEvent.java │ ├── quests │ │ ├── PlayerCompletesQuestScriptEvent.java │ │ ├── PlayerFailsQuestScriptEvent.java │ │ ├── PlayerQuestStageChangeScriptEvent.java │ │ └── PlayerStartsQuestScriptEvent.java │ ├── residence │ │ ├── PlayerCreatesResidenceScriptEvent.java │ │ ├── PlayerEntersResidenceScriptEvent.java │ │ ├── PlayerExitsResidenceScriptEvent.java │ │ ├── ResidenceDeletedScriptEvent.java │ │ ├── ResidenceRaidEndsScriptEvent.java │ │ └── ResidenceRaidStartsScriptEvent.java │ ├── sentinel │ │ ├── SentinelAttackScriptEvent.java │ │ └── SentinelNoMoreTargetsScriptEvent.java │ ├── shopkeepers │ │ ├── ShopKeeperCreatedScriptEvent.java │ │ ├── ShopKeeperTradeCompletedScriptEvent.java │ │ └── ShopKeeperTradeInitiatedScriptEvent.java │ ├── skillapi │ │ ├── SkillAPIPlayerDowngradesSkillScriptEvent.java │ │ ├── SkillAPIPlayerLevelsUpScriptEvent.java │ │ ├── SkillAPIPlayerUnlocksSkillScriptEvent.java │ │ └── SkillAPIPlayerUpgradesSkillScriptEvent.java │ ├── towny │ │ ├── PlayerClaimsPlotScriptEvent.java │ │ ├── PlayerCreatesTownScriptEvent.java │ │ ├── PlayerEntersTownScriptEvent.java │ │ ├── PlayerExitsTownScriptEvent.java │ │ ├── PlayerJoinsTownScriptEvent.java │ │ ├── PlayerLeavesTownScriptEvent.java │ │ └── TownCreatedScriptEvent.java │ └── votifier │ │ └── VotifierVoteScriptEvent.java │ ├── networking │ ├── PacketIn.java │ └── PacketOut.java │ ├── objects │ ├── areashop │ │ └── AreaShopTag.java │ ├── bigdoors │ │ └── BigDoorsDoorTag.java │ ├── factions │ │ └── FactionTag.java │ ├── griefprevention │ │ └── GriefPreventionClaimTag.java │ ├── jobs │ │ └── JobsJobTag.java │ ├── libsdisguises │ │ └── LibsDisguiseTag.java │ ├── luckperms │ │ ├── LuckPermsGroupTag.java │ │ └── LuckPermsTrackTag.java │ ├── mcmmo │ │ └── PartyTag.java │ ├── mobarena │ │ └── MobArenaArenaTag.java │ ├── mythicmobs │ │ ├── MythicMobsMobTag.java │ │ └── MythicSpawnerTag.java │ ├── plotsquared │ │ └── PlotSquaredPlotTag.java │ ├── pvparena │ │ └── PVPArenaArenaTag.java │ ├── residence │ │ └── ResidenceTag.java │ ├── shopkeepers │ │ └── ShopKeeperTag.java │ ├── skillapi │ │ └── SkillAPIClassTag.java │ ├── towny │ │ ├── NationTag.java │ │ └── TownTag.java │ ├── vivecraft │ │ └── ViveCraftPlayerTag.java │ └── worldguard │ │ └── WorldGuardRegionTag.java │ ├── properties │ ├── areashop │ │ └── AreaShopPlayerProperties.java │ ├── askyblock │ │ ├── ASkyBlockLocationProperties.java │ │ ├── ASkyBlockPlayerProperties.java │ │ └── ASkyBlockWorldProperties.java │ ├── betonquest │ │ └── BetonQuestPlayerProperties.java │ ├── bigdoors │ │ ├── BigDoorsPlayerProperties.java │ │ └── BigDoorsWorldProperties.java │ ├── bossshop │ │ └── BossShopInventoryProperties.java │ ├── coreprotect │ │ └── CoreProtectLocationProperties.java │ ├── crackshot │ │ ├── CrackShotEntityProperties.java │ │ └── CrackShotItemProperties.java │ ├── essentials │ │ ├── EssentialsItemExtensions.java │ │ └── EssentialsPlayerProperties.java │ ├── factions │ │ ├── FactionsLocationProperties.java │ │ ├── FactionsNPCProperties.java │ │ └── FactionsPlayerProperties.java │ ├── griefprevention │ │ ├── GriefPreventionLocationProperties.java │ │ ├── GriefPreventionPlayerProperties.java │ │ └── GriefPreventionWorldProperties.java │ ├── jobs │ │ └── JobsPlayerExtensions.java │ ├── libsdisguise │ │ └── LibsDisguiseEntityProperties.java │ ├── luckperms │ │ └── LuckPermsPlayerExtensions.java │ ├── magicspells │ │ └── MagicSpellsPlayerProperties.java │ ├── mcmmo │ │ ├── McMMOEntityProperties.java │ │ ├── McMMOLocationProperties.java │ │ └── McMMOPlayerProperties.java │ ├── mobarena │ │ └── MobArenaPlayerProperties.java │ ├── mythicmobs │ │ ├── MythicMobsEntityProperties.java │ │ └── MythicMobsPlayerProperties.java │ ├── nocheatplus │ │ └── NoCheatPlusPlayerProperties.java │ ├── noteblockapi │ │ └── NoteBlockAPIPlayerProperties.java │ ├── playerpoints │ │ └── PlayerPointsPlayerProperties.java │ ├── plotsquared │ │ ├── PlotSquaredLocationProperties.java │ │ └── PlotSquaredPlayerProperties.java │ ├── pvparena │ │ └── PVPArenaPlayerProperties.java │ ├── pvpstats │ │ └── PVPStatsPlayerProperties.java │ ├── quests │ │ └── QuestsPlayerProperties.java │ ├── residence │ │ ├── ResidenceLocationExtensions.java │ │ └── ResidencePlayerExtensions.java │ ├── sentinel │ │ └── SentinelNPCProperties.java │ ├── shopkeepers │ │ └── ShopKeepersEntityExtensions.java │ ├── skillapi │ │ └── SkillAPIPlayerProperties.java │ ├── terraincontrol │ │ └── TCLocationProperties.java │ ├── towny │ │ ├── TownyChatPlayerProperties.java │ │ ├── TownyCuboidProperties.java │ │ ├── TownyLocationProperties.java │ │ ├── TownyPlayerProperties.java │ │ └── TownyWorldProperties.java │ ├── vampire │ │ └── VampirePlayerProperties.java │ ├── viaversion │ │ └── ViaVersionPlayerExtensions.java │ ├── vivecraft │ │ └── ViveCraftPlayerProperties.java │ ├── worldedit │ │ └── WorldEditPlayerProperties.java │ └── worldguard │ │ ├── WorldGuardCuboidExtensions.java │ │ ├── WorldGuardLocationExtensions.java │ │ ├── WorldGuardNPCExtensions.java │ │ ├── WorldGuardPlayerExtensions.java │ │ └── WorldGuardWorldExtensions.java │ └── utilities │ ├── BridgeLoadException.java │ └── mythicmobs │ ├── MythicMobsLoaders.java │ ├── conditions │ └── DenizenCondition.java │ └── targeters │ ├── DenizenEntityTargeter.java │ └── DenizenLocationTargeter.java └── resources ├── config.yml └── plugin.yml /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: mcmonkey4eva 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | *.iml 3 | .idea/ 4 | dependency-reduced-pom.xml 5 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib"] 2 | path = lib 3 | url = https://github.com/DenizenScript/Depenizen-Lib 4 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Contribution to Denizen 2 | ----------------------- 3 | 4 | Refer to the Denizen contribution guide: https://github.com/DenizenScript/Denizen/blob/dev/CONTRIBUTING.md 5 | -------------------------------------------------------------------------------- /Docs/Bungee.md: -------------------------------------------------------------------------------- 1 | Bungee Bridge 2 | ------------- 3 | 4 | ### Setup 5 | 6 | - Spigot/Paper Side: 7 | - Install [Denizen](https://github.com/DenizenScript/Denizen) and Depenizen ([builds here](https://ci.citizensnpcs.co/job/Depenizen/)) to your Spigot/Paper server. 8 | - Set the `Bungee server address` and `Bungee server port` in your Depenizen config to your Bungee proxy server's details. 9 | - Bungee (Proxy) Side: 10 | - Make sure your Bungee config sees the real address of the end server, not an additional relay proxy (the address will be used to validate the connection). 11 | - Install the Bungee-side plugin (you don't need to configure anything, just toss it in the Bungee plugins folder). 12 | - Download builds of that here: https://ci.citizensnpcs.co/job/DepenizenBungee/ 13 | 14 | ### Related Links: 15 | 16 | - **DepenizenBungee on GitHub**: https://github.com/DenizenScript/DepenizenBungee 17 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019-2024 The Denizen Script Team 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Depenizen 2 | --------- 3 | 4 | **Depenizen: Adds bridges between external plugins and Denizen!** 5 | 6 | - **Support Discord**: https://discord.gg/Q6pZGSR 7 | - **Builds (Download)**: https://ci.citizensnpcs.co/job/Depenizen/ 8 | - **Supported Plugin List**: [Docs/BukkitPlugins.md](Docs/BukkitPlugins.md) 9 | - **Setup Guide For The Bungee Bridge**: [Docs/Bungee.md](Docs/Bungee.md) 10 | 11 | ### Licensing pre-note: 12 | 13 | This is an open source project, provided entirely freely, for everyone to use and contribute to. 14 | 15 | If you make any changes that could benefit the community as a whole, please contribute upstream. 16 | 17 | ### The short of the license is: 18 | 19 | You can do basically whatever you want, except you may not hold any developer liable for what you do with the software. 20 | 21 | ### Previous License 22 | 23 | Copyright (C) 2014-2019 The Denizen Script Team, All Rights Reserved. 24 | 25 | ### The long version of the license follows: 26 | 27 | The MIT License (MIT) 28 | 29 | Copyright (c) 2019-2024 The Denizen Script Team 30 | 31 | Permission is hereby granted, free of charge, to any person obtaining a copy 32 | of this software and associated documentation files (the "Software"), to deal 33 | in the Software without restriction, including without limitation the rights 34 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 35 | copies of the Software, and to permit persons to whom the Software is 36 | furnished to do so, subject to the following conditions: 37 | 38 | The above copyright notice and this permission notice shall be included in all 39 | copies or substantial portions of the Software. 40 | 41 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 42 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 43 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 44 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 45 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 46 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 47 | SOFTWARE. 48 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/Bridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit; 2 | 3 | import org.bukkit.plugin.Plugin; 4 | 5 | public abstract class Bridge { 6 | 7 | public String name; 8 | 9 | public Plugin plugin; 10 | 11 | public abstract void init(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/AreaShopBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.Bridge; 4 | import com.denizenscript.depenizen.bukkit.events.areashop.*; 5 | import com.denizenscript.depenizen.bukkit.properties.areashop.AreaShopPlayerProperties; 6 | import com.denizenscript.depenizen.bukkit.objects.areashop.AreaShopTag; 7 | import com.denizenscript.denizen.objects.PlayerTag; 8 | import com.denizenscript.denizencore.events.ScriptEvent; 9 | import com.denizenscript.denizencore.objects.ObjectFetcher; 10 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 11 | 12 | public class AreaShopBridge extends Bridge { 13 | 14 | @Override 15 | public void init() { 16 | ObjectFetcher.registerWithObjectFetcher(AreaShopTag.class); 17 | PropertyParser.registerProperty(AreaShopPlayerProperties.class, PlayerTag.class); 18 | ScriptEvent.registerScriptEvent(AreaShopBoughtScriptEvent.class); 19 | ScriptEvent.registerScriptEvent(AreaShopExpiresScriptEvent.class); 20 | ScriptEvent.registerScriptEvent(AreaShopRentedScriptEvent.class); 21 | ScriptEvent.registerScriptEvent(AreaShopResoldScriptEvent.class); 22 | ScriptEvent.registerScriptEvent(AreaShopSoldScriptEvent.class); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/AriKeysBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizencore.events.ScriptEvent; 4 | import com.denizenscript.depenizen.bukkit.Bridge; 5 | import com.denizenscript.depenizen.bukkit.events.arikeys.AriKeysKeyPressScriptEvent; 6 | import com.denizenscript.depenizen.bukkit.events.arikeys.AriKeysKeyReleaseScriptEvent; 7 | 8 | 9 | public class AriKeysBridge extends Bridge { 10 | 11 | @Override 12 | public void init() { 13 | ScriptEvent.registerScriptEvent(AriKeysKeyReleaseScriptEvent.class); 14 | ScriptEvent.registerScriptEvent(AriKeysKeyPressScriptEvent.class); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/BetonQuestBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizen.objects.PlayerTag; 4 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 5 | import com.denizenscript.depenizen.bukkit.Bridge; 6 | import com.denizenscript.depenizen.bukkit.properties.betonquest.BetonQuestPlayerProperties; 7 | 8 | public class BetonQuestBridge extends Bridge { 9 | 10 | @Override 11 | public void init() { 12 | PropertyParser.registerProperty(BetonQuestPlayerProperties.class, PlayerTag.class); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/BigDoorsBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizen.objects.PlayerTag; 4 | import com.denizenscript.denizen.objects.WorldTag; 5 | import com.denizenscript.denizencore.events.ScriptEvent; 6 | import com.denizenscript.denizencore.objects.ObjectFetcher; 7 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 8 | import com.denizenscript.denizencore.tags.TagManager; 9 | import com.denizenscript.depenizen.bukkit.Bridge; 10 | import com.denizenscript.depenizen.bukkit.events.bigdoors.BigDoorsDoorTogglesScriptEvent; 11 | import com.denizenscript.depenizen.bukkit.objects.bigdoors.BigDoorsDoorTag; 12 | import com.denizenscript.depenizen.bukkit.properties.bigdoors.BigDoorsPlayerProperties; 13 | import com.denizenscript.depenizen.bukkit.properties.bigdoors.BigDoorsWorldProperties; 14 | import nl.pim16aap2.bigDoors.BigDoors; 15 | import nl.pim16aap2.bigDoors.Commander; 16 | import org.bukkit.Bukkit; 17 | 18 | public class BigDoorsBridge extends Bridge { 19 | 20 | public static BigDoors bigDoors; 21 | public static Commander commander; 22 | 23 | @Override 24 | public void init() { 25 | bigDoors = (BigDoors) Bukkit.getPluginManager().getPlugin("BigDoors"); 26 | commander = bigDoors.getCommander(); 27 | ObjectFetcher.registerWithObjectFetcher(BigDoorsDoorTag.class, BigDoorsDoorTag.tagProcessor); 28 | PropertyParser.registerProperty(BigDoorsWorldProperties.class, WorldTag.class); 29 | PropertyParser.registerProperty(BigDoorsPlayerProperties.class, PlayerTag.class); 30 | ScriptEvent.registerScriptEvent(BigDoorsDoorTogglesScriptEvent.class); 31 | 32 | // <--[tag] 33 | // @attribute ]> 34 | // @returns BigDoorsDoorTag 35 | // @plugin Depenizen, Big Doors 36 | // @description 37 | // Returns a BigDoorsDoorTag object constructed from the input value. 38 | // Refer to <@link objecttype BigDoorsDoorTag>. 39 | // --> 40 | TagManager.registerTagHandler(BigDoorsDoorTag.class, "bigdoor", (attribute) -> { 41 | if (!attribute.hasParam()) { 42 | attribute.echoError("Big Doors door tag base must have input."); 43 | return null; 44 | } 45 | return BigDoorsDoorTag.valueOf(attribute.getParam(), attribute.context); 46 | }); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/BossShopBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizencore.DenizenCore; 4 | import com.denizenscript.depenizen.bukkit.commands.bossshop.BossShopCommand; 5 | import com.denizenscript.depenizen.bukkit.properties.bossshop.BossShopInventoryProperties; 6 | import com.denizenscript.depenizen.bukkit.Bridge; 7 | import com.denizenscript.denizen.objects.InventoryTag; 8 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 9 | 10 | public class BossShopBridge extends Bridge { 11 | 12 | public static BossShopBridge instance; 13 | 14 | @Override 15 | public void init() { 16 | instance = this; 17 | DenizenCore.commandRegistry.registerCommand(BossShopCommand.class); 18 | PropertyParser.registerProperty(BossShopInventoryProperties.class, InventoryTag.class); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/ChestShopBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizencore.events.ScriptEvent; 4 | import com.denizenscript.depenizen.bukkit.Bridge; 5 | import com.denizenscript.depenizen.bukkit.events.chestshop.*; 6 | 7 | public class ChestShopBridge extends Bridge { 8 | 9 | @Override 10 | public void init() { 11 | ScriptEvent.registerScriptEvent(ChestShopShopCreatedScriptEvent.class); 12 | ScriptEvent.registerScriptEvent(ChestShopShopDeletedScriptEvent.class); 13 | ScriptEvent.registerScriptEvent(ChestShopTransactionScriptEvent.class); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/CoreProtectBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizen.objects.LocationTag; 4 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 5 | import com.denizenscript.depenizen.bukkit.Bridge; 6 | import com.denizenscript.depenizen.bukkit.properties.coreprotect.CoreProtectLocationProperties; 7 | import net.coreprotect.CoreProtect; 8 | import net.coreprotect.CoreProtectAPI; 9 | 10 | public class CoreProtectBridge extends Bridge { 11 | 12 | public static CoreProtectAPI apiInstance; 13 | 14 | @Override 15 | public void init() { 16 | apiInstance = ((CoreProtect) plugin).getAPI(); 17 | PropertyParser.registerProperty(CoreProtectLocationProperties.class, LocationTag.class); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/EffectLibBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizencore.DenizenCore; 4 | import com.denizenscript.depenizen.bukkit.Depenizen; 5 | import com.denizenscript.depenizen.bukkit.commands.effectlib.EffectLibCommand; 6 | import com.denizenscript.depenizen.bukkit.Bridge; 7 | import de.slikey.effectlib.EffectManager; 8 | 9 | public class EffectLibBridge extends Bridge { 10 | 11 | public static EffectLibBridge instance; 12 | public EffectManager effectManager; 13 | 14 | @Override 15 | public void init() { 16 | instance = this; 17 | effectManager = new EffectManager(Depenizen.instance); 18 | DenizenCore.commandRegistry.registerCommand(EffectLibCommand.class); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/LibsDisguisesBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizencore.DenizenCore; 4 | import com.denizenscript.depenizen.bukkit.commands.libsdisguises.LibsDisguiseCommand; 5 | import com.denizenscript.depenizen.bukkit.events.libsdisguises.EntityDisguisesScriptEvent; 6 | import com.denizenscript.depenizen.bukkit.events.libsdisguises.EntityUndisguisesScriptEvent; 7 | import com.denizenscript.depenizen.bukkit.properties.libsdisguise.LibsDisguiseEntityProperties; 8 | import com.denizenscript.depenizen.bukkit.objects.libsdisguises.LibsDisguiseTag; 9 | import com.denizenscript.depenizen.bukkit.Bridge; 10 | import com.denizenscript.denizen.objects.EntityTag; 11 | import com.denizenscript.denizencore.events.ScriptEvent; 12 | import com.denizenscript.denizencore.objects.ObjectFetcher; 13 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 14 | 15 | public class LibsDisguisesBridge extends Bridge { 16 | 17 | @Override 18 | public void init() { 19 | ScriptEvent.registerScriptEvent(EntityDisguisesScriptEvent.class); 20 | ScriptEvent.registerScriptEvent(EntityUndisguisesScriptEvent.class); 21 | ObjectFetcher.registerWithObjectFetcher(LibsDisguiseTag.class); 22 | PropertyParser.registerProperty(LibsDisguiseEntityProperties.class, EntityTag.class); 23 | DenizenCore.commandRegistry.registerCommand(LibsDisguiseCommand.class); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/MagicSpellsBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.events.magicspells.*; 4 | import com.denizenscript.depenizen.bukkit.properties.magicspells.MagicSpellsPlayerProperties; 5 | import com.denizenscript.depenizen.bukkit.Bridge; 6 | import com.denizenscript.denizen.objects.PlayerTag; 7 | import com.denizenscript.denizencore.events.ScriptEvent; 8 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 9 | 10 | public class MagicSpellsBridge extends Bridge { 11 | 12 | @Override 13 | public void init() { 14 | PropertyParser.registerProperty(MagicSpellsPlayerProperties.class, PlayerTag.class); 15 | ScriptEvent.registerScriptEvent(SpellCastScriptEvent.class); 16 | ScriptEvent.registerScriptEvent(SpellCastedScriptEvent.class); 17 | ScriptEvent.registerScriptEvent(ManaChangeScriptEvent.class); 18 | ScriptEvent.registerScriptEvent(SpellLearnScriptEvent.class); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/MythicKeysBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizencore.events.ScriptEvent; 4 | import com.denizenscript.depenizen.bukkit.Bridge; 5 | import com.denizenscript.depenizen.bukkit.events.mythickeys.MythicKeysKeyPressScriptEvent; 6 | import com.denizenscript.depenizen.bukkit.events.mythickeys.MythicKeysKeyReleaseScriptEvent; 7 | 8 | public class MythicKeysBridge extends Bridge { 9 | 10 | @Override 11 | public void init() { 12 | ScriptEvent.registerScriptEvent(MythicKeysKeyPressScriptEvent.class); 13 | ScriptEvent.registerScriptEvent(MythicKeysKeyReleaseScriptEvent.class); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/NoCheatPlusBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.Bridge; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.depenizen.bukkit.properties.nocheatplus.NoCheatPlusPlayerProperties; 6 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 7 | 8 | public class NoCheatPlusBridge extends Bridge { 9 | 10 | @Override 11 | public void init() { 12 | PropertyParser.registerProperty(NoCheatPlusPlayerProperties.class, PlayerTag.class); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/NoteBlockAPIBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizencore.DenizenCore; 4 | import com.denizenscript.denizencore.events.ScriptEvent; 5 | import com.denizenscript.depenizen.bukkit.commands.noteblockapi.NBSCommand; 6 | import com.denizenscript.depenizen.bukkit.events.noteblockapi.NoteBlockAPISongEndsScriptEvent; 7 | import com.denizenscript.depenizen.bukkit.properties.noteblockapi.NoteBlockAPIPlayerProperties; 8 | import com.denizenscript.depenizen.bukkit.Bridge; 9 | import com.denizenscript.denizen.objects.PlayerTag; 10 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 11 | 12 | public class NoteBlockAPIBridge extends Bridge { 13 | 14 | @Override 15 | public void init() { 16 | 17 | PropertyParser.registerProperty(NoteBlockAPIPlayerProperties.class, PlayerTag.class); 18 | DenizenCore.commandRegistry.registerCommand(NBSCommand.class); 19 | ScriptEvent.registerScriptEvent(NoteBlockAPISongEndsScriptEvent.class); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/OpenTerrainGeneratorBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.properties.terraincontrol.TCLocationProperties; 4 | import com.denizenscript.depenizen.bukkit.Bridge; 5 | import com.denizenscript.denizen.objects.LocationTag; 6 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 7 | 8 | public class OpenTerrainGeneratorBridge extends Bridge { 9 | 10 | @Override 11 | public void init() { 12 | PropertyParser.registerProperty(TCLocationProperties.class, LocationTag.class); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/PVPStatsBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.properties.pvpstats.PVPStatsPlayerProperties; 4 | import com.denizenscript.depenizen.bukkit.Bridge; 5 | import com.denizenscript.denizen.objects.PlayerTag; 6 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 7 | 8 | public class PVPStatsBridge extends Bridge { 9 | 10 | @Override 11 | public void init() { 12 | PropertyParser.registerProperty(PVPStatsPlayerProperties.class, PlayerTag.class); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/PlotSquaredBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizencore.utilities.debugging.Debug; 4 | import com.denizenscript.depenizen.bukkit.events.plotsquared.PlayerClaimPlotScriptEvent; 5 | import com.denizenscript.depenizen.bukkit.events.plotsquared.PlayerEntersPlotScriptEvent; 6 | import com.denizenscript.depenizen.bukkit.events.plotsquared.PlayerLeavePlotScriptEvent; 7 | import com.denizenscript.depenizen.bukkit.events.plotsquared.PlotClearScriptEvent; 8 | import com.denizenscript.depenizen.bukkit.properties.plotsquared.PlotSquaredLocationProperties; 9 | import com.denizenscript.depenizen.bukkit.properties.plotsquared.PlotSquaredPlayerProperties; 10 | import com.denizenscript.depenizen.bukkit.objects.plotsquared.PlotSquaredPlotTag; 11 | import com.denizenscript.depenizen.bukkit.Bridge; 12 | import com.denizenscript.denizen.objects.LocationTag; 13 | import com.denizenscript.denizen.objects.PlayerTag; 14 | import com.denizenscript.denizencore.events.ScriptEvent; 15 | import com.denizenscript.denizencore.objects.ObjectFetcher; 16 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 17 | 18 | public class PlotSquaredBridge extends Bridge { 19 | 20 | @Override 21 | public void init() { 22 | // TODO: Remove PlotSquared? Newer versions are premium only, but licensing implies possibility of free updates? 23 | if (!plugin.getDescription().getVersion().startsWith("4.")) { 24 | Debug.log("Ignoring PlotSquared bridge, unsupported version."); 25 | return; 26 | } 27 | ScriptEvent.registerScriptEvent(PlayerEntersPlotScriptEvent.class); 28 | ScriptEvent.registerScriptEvent(PlayerLeavePlotScriptEvent.class); 29 | ScriptEvent.registerScriptEvent(PlayerClaimPlotScriptEvent.class); 30 | ScriptEvent.registerScriptEvent(PlotClearScriptEvent.class); 31 | ObjectFetcher.registerWithObjectFetcher(PlotSquaredPlotTag.class); 32 | PropertyParser.registerProperty(PlotSquaredPlayerProperties.class, PlayerTag.class); 33 | PropertyParser.registerProperty(PlotSquaredLocationProperties.class, LocationTag.class); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/ResidenceBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.events.residence.*; 4 | import com.denizenscript.depenizen.bukkit.properties.residence.ResidenceLocationExtensions; 5 | import com.denizenscript.depenizen.bukkit.properties.residence.ResidencePlayerExtensions; 6 | import com.denizenscript.depenizen.bukkit.Bridge; 7 | import com.denizenscript.depenizen.bukkit.objects.residence.ResidenceTag; 8 | import com.denizenscript.denizencore.events.ScriptEvent; 9 | import com.denizenscript.denizencore.objects.ObjectFetcher; 10 | 11 | public class ResidenceBridge extends Bridge { 12 | 13 | @Override 14 | public void init() { 15 | 16 | // <--[tag] 17 | // @attribute ]> 18 | // @returns ResidenceTag 19 | // @plugin Depenizen, Residence 20 | // @description 21 | // Returns a residence object constructed from the input value. 22 | // Refer to <@link objecttype ResidenceTag>. 23 | // --> 24 | ObjectFetcher.registerWithObjectFetcher(ResidenceTag.class, ResidenceTag.tagProcessor).generateBaseTag(); 25 | ResidencePlayerExtensions.register(); 26 | ResidenceLocationExtensions.register(); 27 | ScriptEvent.registerScriptEvent(PlayerEntersResidenceScriptEvent.class); 28 | ScriptEvent.registerScriptEvent(PlayerExitsResidenceScriptEvent.class); 29 | ScriptEvent.registerScriptEvent(PlayerCreatesResidenceScriptEvent.class); 30 | ScriptEvent.registerScriptEvent(ResidenceDeletedScriptEvent.class); 31 | ScriptEvent.registerScriptEvent(ResidenceRaidStartsScriptEvent.class); 32 | ScriptEvent.registerScriptEvent(ResidenceRaidEndsScriptEvent.class); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/ShopkeepersBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizen.objects.ItemTag; 4 | import com.denizenscript.denizencore.events.ScriptEvent; 5 | import com.denizenscript.denizencore.objects.ObjectFetcher; 6 | import com.denizenscript.denizencore.objects.core.ListTag; 7 | import com.denizenscript.depenizen.bukkit.Bridge; 8 | import com.denizenscript.depenizen.bukkit.events.shopkeepers.ShopKeeperCreatedScriptEvent; 9 | import com.denizenscript.depenizen.bukkit.events.shopkeepers.ShopKeeperTradeCompletedScriptEvent; 10 | import com.denizenscript.depenizen.bukkit.events.shopkeepers.ShopKeeperTradeInitiatedScriptEvent; 11 | import com.denizenscript.depenizen.bukkit.objects.shopkeepers.ShopKeeperTag; 12 | import com.denizenscript.depenizen.bukkit.properties.shopkeepers.ShopKeepersEntityExtensions; 13 | import com.nisovin.shopkeepers.api.shopkeeper.TradingRecipe; 14 | 15 | public class ShopkeepersBridge extends Bridge { 16 | 17 | public static ShopkeepersBridge instance; 18 | 19 | @Override 20 | public void init() { 21 | instance = this; 22 | ObjectFetcher.registerWithObjectFetcher(ShopKeeperTag.class, ShopKeeperTag.tagProcessor); 23 | ScriptEvent.registerScriptEvent(ShopKeeperCreatedScriptEvent.class); 24 | ScriptEvent.registerScriptEvent(ShopKeeperTradeCompletedScriptEvent.class); 25 | ScriptEvent.registerScriptEvent(ShopKeeperTradeInitiatedScriptEvent.class); 26 | ShopKeepersEntityExtensions.register(); 27 | } 28 | 29 | public static ListTag tradingRecipeToList(TradingRecipe tradingRecipe) { 30 | ListTag recipe = new ListTag(3); 31 | recipe.addObject(new ItemTag(tradingRecipe.getItem1().copy())); 32 | recipe.addObject(new ItemTag(tradingRecipe.getItem2() != null ? tradingRecipe.getItem2().copy() : null)); 33 | recipe.addObject(new ItemTag(tradingRecipe.getResultItem().copy())); 34 | return recipe; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/SkillAPIBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.properties.skillapi.SkillAPIPlayerProperties; 4 | import com.denizenscript.depenizen.bukkit.Bridge; 5 | import com.denizenscript.depenizen.bukkit.events.skillapi.SkillAPIPlayerLevelsUpScriptEvent; 6 | import com.denizenscript.depenizen.bukkit.events.skillapi.SkillAPIPlayerUnlocksSkillScriptEvent; 7 | import com.denizenscript.depenizen.bukkit.events.skillapi.SkillAPIPlayerUpgradesSkillScriptEvent; 8 | import com.denizenscript.depenizen.bukkit.objects.skillapi.SkillAPIClassTag; 9 | import com.denizenscript.denizen.objects.PlayerTag; 10 | import com.denizenscript.depenizen.bukkit.events.skillapi.SkillAPIPlayerDowngradesSkillScriptEvent; 11 | import com.denizenscript.denizencore.events.ScriptEvent; 12 | import com.denizenscript.denizencore.objects.ObjectFetcher; 13 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 14 | 15 | public class SkillAPIBridge extends Bridge { 16 | 17 | @Override 18 | public void init() { 19 | ObjectFetcher.registerWithObjectFetcher(SkillAPIClassTag.class); 20 | PropertyParser.registerProperty(SkillAPIPlayerProperties.class, PlayerTag.class); 21 | ScriptEvent.registerScriptEvent(SkillAPIPlayerUnlocksSkillScriptEvent.class); 22 | ScriptEvent.registerScriptEvent(SkillAPIPlayerUpgradesSkillScriptEvent.class); 23 | ScriptEvent.registerScriptEvent(SkillAPIPlayerDowngradesSkillScriptEvent.class); 24 | ScriptEvent.registerScriptEvent(SkillAPIPlayerLevelsUpScriptEvent.class); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/TerrainControlBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.Bridge; 4 | import com.denizenscript.denizen.objects.LocationTag; 5 | import com.denizenscript.depenizen.bukkit.properties.terraincontrol.TCLocationProperties; 6 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 7 | 8 | public class TerrainControlBridge extends Bridge { 9 | 10 | @Override 11 | public void init() { 12 | PropertyParser.registerProperty(TCLocationProperties.class, LocationTag.class); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/TownyChatBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.Bridge; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.depenizen.bukkit.properties.towny.TownyChatPlayerProperties; 6 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 7 | 8 | public class TownyChatBridge extends Bridge { 9 | 10 | public static TownyChatBridge instance; 11 | 12 | @Override 13 | public void init() { 14 | instance = this; 15 | PropertyParser.registerProperty(TownyChatPlayerProperties.class, PlayerTag.class); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/VampireBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.properties.vampire.VampirePlayerProperties; 4 | import com.denizenscript.depenizen.bukkit.Bridge; 5 | import com.denizenscript.denizen.objects.PlayerTag; 6 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 7 | 8 | public class VampireBridge extends Bridge { 9 | @Override 10 | public void init() { 11 | PropertyParser.registerProperty(VampirePlayerProperties.class, PlayerTag.class); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/ViveCraftBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizencore.DenizenCore; 4 | import com.denizenscript.denizencore.objects.ObjectFetcher; 5 | import com.denizenscript.depenizen.bukkit.Bridge; 6 | import com.denizenscript.depenizen.bukkit.commands.vivecraft.ViveMirrorCommand; 7 | import com.denizenscript.depenizen.bukkit.objects.vivecraft.ViveCraftPlayerTag; 8 | import com.denizenscript.depenizen.bukkit.properties.vivecraft.ViveCraftPlayerProperties; 9 | import org.bukkit.entity.Player; 10 | import org.vivecraft.VSE; 11 | import org.vivecraft.VivePlayer; 12 | 13 | public class ViveCraftBridge extends Bridge { 14 | 15 | @Override 16 | public void init() { 17 | ViveCraftPlayerProperties.register(); 18 | ObjectFetcher.registerWithObjectFetcher(ViveCraftPlayerTag.class, ViveCraftPlayerTag.tagProcessor); 19 | DenizenCore.commandRegistry.registerCommand(ViveMirrorCommand.class); 20 | } 21 | 22 | public static boolean isViveCraftPlayer(Player player) { 23 | return VSE.isVive(player); 24 | } 25 | 26 | public static VivePlayer getViveCraftPlayer(Player player) { 27 | return VSE.vivePlayers.get(player.getUniqueId()); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/VotifierBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.depenizen.bukkit.Bridge; 4 | import com.denizenscript.depenizen.bukkit.events.votifier.VotifierVoteScriptEvent; 5 | import com.denizenscript.denizencore.events.ScriptEvent; 6 | 7 | public class VotifierBridge extends Bridge { 8 | 9 | @Override 10 | public void init() { 11 | ScriptEvent.registerScriptEvent(VotifierVoteScriptEvent.class); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/WorldEditBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizencore.DenizenCore; 4 | import com.denizenscript.depenizen.bukkit.Bridge; 5 | import com.denizenscript.denizen.objects.PlayerTag; 6 | import com.denizenscript.depenizen.bukkit.commands.worldedit.WorldEditCommand; 7 | import com.denizenscript.depenizen.bukkit.properties.worldedit.WorldEditPlayerProperties; 8 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 9 | 10 | public class WorldEditBridge extends Bridge { 11 | 12 | public static WorldEditBridge instance; 13 | 14 | @Override 15 | public void init() { 16 | instance = this; 17 | DenizenCore.commandRegistry.registerCommand(WorldEditCommand.class); 18 | PropertyParser.registerProperty(WorldEditPlayerProperties.class, PlayerTag.class); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bridges/WorldGuardBridge.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bridges; 2 | 3 | import com.denizenscript.denizen.utilities.depends.Depends; 4 | import com.denizenscript.denizencore.DenizenCore; 5 | import com.denizenscript.denizencore.objects.ObjectFetcher; 6 | import com.denizenscript.denizencore.tags.TagManager; 7 | import com.denizenscript.depenizen.bukkit.Bridge; 8 | import com.denizenscript.depenizen.bukkit.commands.worldguard.RegionCommand; 9 | import com.denizenscript.depenizen.bukkit.objects.worldguard.WorldGuardRegionTag; 10 | import com.denizenscript.depenizen.bukkit.properties.worldguard.*; 11 | import com.sk89q.worldedit.bukkit.BukkitAdapter; 12 | import com.sk89q.worldguard.WorldGuard; 13 | import com.sk89q.worldguard.protection.managers.RegionManager; 14 | import org.bukkit.World; 15 | 16 | public class WorldGuardBridge extends Bridge { 17 | 18 | public static WorldGuardBridge instance; 19 | 20 | @Override 21 | public void init() { 22 | instance = this; 23 | ObjectFetcher.registerWithObjectFetcher(WorldGuardRegionTag.class, WorldGuardRegionTag.tagProcessor); 24 | WorldGuardLocationExtensions.register(); 25 | WorldGuardPlayerExtensions.register(); 26 | WorldGuardCuboidExtensions.register(); 27 | WorldGuardWorldExtensions.register(); 28 | if (Depends.citizens != null) { 29 | WorldGuardNPCExtensions.register(); 30 | } 31 | DenizenCore.commandRegistry.registerCommand(RegionCommand.class); 32 | 33 | // <--[tag] 34 | // @attribute ]> 35 | // @returns WorldGuardRegionTag 36 | // @plugin Depenizen, WorldGuard 37 | // @description 38 | // Returns a WorldGuard region object constructed from the input value. 39 | // Refer to <@link objecttype WorldGuardRegionTag>. 40 | // --> 41 | TagManager.registerTagHandler(WorldGuardRegionTag.class, WorldGuardRegionTag.class, "region", (attribute, region) -> { 42 | return region; 43 | }); 44 | } 45 | 46 | public static RegionManager getManager(World world) { 47 | return WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(world)); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/BungeePacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee; 2 | 3 | import com.denizenscript.depenizen.bukkit.networking.PacketIn; 4 | 5 | public abstract class BungeePacketIn extends PacketIn { 6 | 7 | @Override 8 | public void fail(String reason) { 9 | BungeeBridge.instance.handler.fail(reason); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/BungeePacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee; 2 | 3 | import com.denizenscript.depenizen.bukkit.networking.PacketOut; 4 | 5 | public abstract class BungeePacketOut extends PacketOut { 6 | 7 | public boolean canBeFirstPacket = false; 8 | 9 | public abstract int getPacketId(); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/NettyExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee; 2 | 3 | import io.netty.channel.*; 4 | import com.denizenscript.denizencore.utilities.debugging.Debug; 5 | 6 | import java.net.SocketAddress; 7 | 8 | public class NettyExceptionHandler extends ChannelDuplexHandler { 9 | 10 | @Override 11 | public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { 12 | BungeeBridge.runOnMainThread(() -> Debug.echoError(cause)); 13 | } 14 | 15 | @Override 16 | public void connect(ChannelHandlerContext ctx, SocketAddress remoteAddress, SocketAddress localAddress, ChannelPromise promise) { 17 | ctx.connect(remoteAddress, localAddress, promise.addListener((ChannelFutureListener) future -> { 18 | if (!future.isSuccess()) { 19 | BungeeBridge.runOnMainThread(() -> Debug.echoError(future.cause())); 20 | } 21 | })); 22 | } 23 | 24 | @Override 25 | public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) { 26 | ctx.write(msg, promise.addListener((ChannelFutureListener) future -> { 27 | if (!future.isSuccess()) { 28 | BungeeBridge.runOnMainThread(() -> Debug.echoError(future.cause())); 29 | } 30 | })); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/in/AddServerPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.in; 2 | 3 | import com.denizenscript.depenizen.bukkit.Depenizen; 4 | import com.denizenscript.depenizen.bukkit.bungee.BungeeBridge; 5 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketIn; 6 | import com.denizenscript.depenizen.bukkit.events.bungee.BungeeServerConnectScriptEvent; 7 | import io.netty.buffer.ByteBuf; 8 | import org.bukkit.Bukkit; 9 | 10 | public class AddServerPacketIn extends BungeePacketIn { 11 | 12 | @Override 13 | public String getName() { 14 | return "AddServer"; 15 | } 16 | 17 | @Override 18 | public void process(ByteBuf data) { 19 | String serverName = readString(data, "serverName"); 20 | if (serverName == null) { 21 | return; 22 | } 23 | Bukkit.getScheduler().scheduleSyncDelayedTask(Depenizen.instance, () -> { 24 | BungeeBridge.instance.knownServers.add(serverName); 25 | BungeeServerConnectScriptEvent.instance.serverName = serverName; 26 | BungeeServerConnectScriptEvent.instance.fire(); 27 | }); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/in/KeepAlivePacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.in; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketIn; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | public class KeepAlivePacketIn extends BungeePacketIn { 7 | 8 | @Override 9 | public String getName() { 10 | return "KeepAlive"; 11 | } 12 | 13 | @Override 14 | public void process(ByteBuf data) { 15 | // Do nothing, no data is included 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/in/PlayerJoinPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.in; 2 | 3 | import com.denizenscript.depenizen.bukkit.Depenizen; 4 | import com.denizenscript.depenizen.bukkit.bungee.BungeeBridge; 5 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketIn; 6 | import com.denizenscript.depenizen.bukkit.events.bungee.BungeePlayerJoinsScriptEvent; 7 | import io.netty.buffer.ByteBuf; 8 | import org.bukkit.Bukkit; 9 | 10 | import java.util.UUID; 11 | 12 | public class PlayerJoinPacketIn extends BungeePacketIn { 13 | 14 | @Override 15 | public String getName() { 16 | return "PlayerJoin"; 17 | } 18 | 19 | @Override 20 | public void process(ByteBuf data) { 21 | if (data.readableBytes() < 12) { 22 | BungeeBridge.instance.handler.fail("Invalid PlayerJoinPacket (bytes available: " + data.readableBytes() + ")"); 23 | return; 24 | } 25 | long mostSigBits = data.readLong(); 26 | long leastSigBits = data.readLong(); 27 | UUID uuid = new UUID(mostSigBits, leastSigBits); 28 | String name = readString(data, "name"); 29 | String ip = readString(data, "ip"); 30 | String host = readString(data, "host"); 31 | if (name == null || ip == null) { 32 | return; 33 | } 34 | Bukkit.getScheduler().scheduleSyncDelayedTask(Depenizen.instance, () -> { 35 | BungeePlayerJoinsScriptEvent.instance.name = name; 36 | BungeePlayerJoinsScriptEvent.instance.uuid = uuid; 37 | BungeePlayerJoinsScriptEvent.instance.ip = ip; 38 | BungeePlayerJoinsScriptEvent.instance.host = host; 39 | BungeePlayerJoinsScriptEvent.instance.fire(); 40 | }); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/in/PlayerQuitPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.in; 2 | 3 | import com.denizenscript.depenizen.bukkit.Depenizen; 4 | import com.denizenscript.depenizen.bukkit.bungee.BungeeBridge; 5 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketIn; 6 | import com.denizenscript.depenizen.bukkit.events.bungee.BungeePlayerQuitsScriptEvent; 7 | import io.netty.buffer.ByteBuf; 8 | import org.bukkit.Bukkit; 9 | 10 | import java.util.UUID; 11 | 12 | public class PlayerQuitPacketIn extends BungeePacketIn { 13 | 14 | @Override 15 | public String getName() { 16 | return "PlayerQuit"; 17 | } 18 | 19 | @Override 20 | public void process(ByteBuf data) { 21 | if (data.readableBytes() < 12) { 22 | BungeeBridge.instance.handler.fail("Invalid PlayerQuitPacket (bytes available: " + data.readableBytes() + ")"); 23 | return; 24 | } 25 | long mostSigBits = data.readLong(); 26 | long leastSigBits = data.readLong(); 27 | UUID uuid = new UUID(mostSigBits, leastSigBits); 28 | String name = readString(data, "name"); 29 | String ip = readString(data, "ip"); 30 | if (name == null || ip == null) { 31 | return; 32 | } 33 | Bukkit.getScheduler().scheduleSyncDelayedTask(Depenizen.instance, () -> { 34 | BungeePlayerQuitsScriptEvent.instance.name = name; 35 | BungeePlayerQuitsScriptEvent.instance.uuid = uuid; 36 | BungeePlayerQuitsScriptEvent.instance.ip = ip; 37 | BungeePlayerQuitsScriptEvent.instance.fire(); 38 | }); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/in/PlayerSwitchServerPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.in; 2 | 3 | import com.denizenscript.depenizen.bukkit.Depenizen; 4 | import com.denizenscript.depenizen.bukkit.bungee.BungeeBridge; 5 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketIn; 6 | import com.denizenscript.depenizen.bukkit.events.bungee.BungeePlayerServerSwitchScriptEvent; 7 | import io.netty.buffer.ByteBuf; 8 | import org.bukkit.Bukkit; 9 | 10 | import java.util.UUID; 11 | 12 | public class PlayerSwitchServerPacketIn extends BungeePacketIn { 13 | 14 | @Override 15 | public String getName() { 16 | return "PlayerSwitchServer"; 17 | } 18 | 19 | @Override 20 | public void process(ByteBuf data) { 21 | if (data.readableBytes() < 16) { 22 | BungeeBridge.instance.handler.fail("Invalid PlayerSwitchServerPacket (bytes available: " + data.readableBytes() + ")"); 23 | return; 24 | } 25 | long mostSigBits = data.readLong(); 26 | long leastSigBits = data.readLong(); 27 | UUID uuid = new UUID(mostSigBits, leastSigBits); 28 | String name = readString(data, "name"); 29 | String serverName = readString(data, "serverName"); 30 | if (name == null || serverName == null) { 31 | return; 32 | } 33 | Bukkit.getScheduler().scheduleSyncDelayedTask(Depenizen.instance, () -> { 34 | BungeePlayerServerSwitchScriptEvent.instance.name = name; 35 | BungeePlayerServerSwitchScriptEvent.instance.uuid = uuid; 36 | BungeePlayerServerSwitchScriptEvent.instance.newServer = serverName; 37 | BungeePlayerServerSwitchScriptEvent.instance.fire(); 38 | }); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/in/ProxyCommandPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.in; 2 | 3 | import com.denizenscript.depenizen.bukkit.Depenizen; 4 | import com.denizenscript.depenizen.bukkit.bungee.BungeeBridge; 5 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketIn; 6 | import com.denizenscript.depenizen.bukkit.bungee.packets.out.ProxyCommandResultPacketOut; 7 | import com.denizenscript.depenizen.bukkit.events.bungee.BungeeProxyServerCommandScriptEvent; 8 | import io.netty.buffer.ByteBuf; 9 | import org.bukkit.Bukkit; 10 | 11 | import java.util.UUID; 12 | 13 | public class ProxyCommandPacketIn extends BungeePacketIn { 14 | 15 | @Override 16 | public String getName() { 17 | return "ProxyPing"; 18 | } 19 | 20 | @Override 21 | public void process(ByteBuf data) { 22 | if (data.readableBytes() < 8 + 4 + 4 + 4) { 23 | BungeeBridge.instance.handler.fail("Invalid ProxyCommandPacket (bytes available: " + data.readableBytes() + ")"); 24 | return; 25 | } 26 | long id = data.readLong(); 27 | String sender = readString(data, "sender"); 28 | String command = readString(data, "command"); 29 | String senderIdText = readString(data, "senderID"); 30 | if (sender == null || command == null || senderIdText == null) { 31 | return; 32 | } 33 | UUID senderId = senderIdText.isEmpty() ? null : UUID.fromString(senderIdText); 34 | Bukkit.getScheduler().scheduleSyncDelayedTask(Depenizen.instance, () -> { 35 | BungeeProxyServerCommandScriptEvent.instance.sender = sender; 36 | BungeeProxyServerCommandScriptEvent.instance.senderId = senderId; 37 | BungeeProxyServerCommandScriptEvent.instance.command = new BungeeProxyServerCommandScriptEvent.CommandData(); 38 | BungeeProxyServerCommandScriptEvent.instance.command.command = command; 39 | BungeeProxyServerCommandScriptEvent.instance.fire(); 40 | ProxyCommandResultPacketOut packetOut = new ProxyCommandResultPacketOut(); 41 | packetOut.id = id; 42 | packetOut.result = BungeeProxyServerCommandScriptEvent.instance.command.cancelled ? "cancelled" : 43 | (!BungeeProxyServerCommandScriptEvent.instance.command.command.equals(command) ? 44 | BungeeProxyServerCommandScriptEvent.instance.command.command : ""); 45 | BungeeBridge.instance.sendPacket(packetOut); 46 | }); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/in/ProxyPingPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.in; 2 | 3 | import com.denizenscript.depenizen.bukkit.Depenizen; 4 | import com.denizenscript.depenizen.bukkit.bungee.BungeeBridge; 5 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketIn; 6 | import com.denizenscript.depenizen.bukkit.bungee.packets.out.ProxyPingResultPacketOut; 7 | import com.denizenscript.depenizen.bukkit.events.bungee.BungeeProxyServerListPingScriptEvent; 8 | import io.netty.buffer.ByteBuf; 9 | import org.bukkit.Bukkit; 10 | 11 | public class ProxyPingPacketIn extends BungeePacketIn { 12 | 13 | @Override 14 | public String getName() { 15 | return "ProxyPing"; 16 | } 17 | 18 | @Override 19 | public void process(ByteBuf data) { 20 | if (data.readableBytes() < 8 + 4 + 4 + 4 + 4 + 4 + 4) { 21 | BungeeBridge.instance.handler.fail("Invalid ProxyPingPacket (bytes available: " + data.readableBytes() + ")"); 22 | return; 23 | } 24 | long id = data.readLong(); 25 | String address = readString(data, "address"); 26 | int currentPlayers = data.readInt(); 27 | int maxPlayers = data.readInt(); 28 | String motd = readString(data, "motd"); 29 | int protocol = data.readInt(); 30 | String version = readString(data, "version"); 31 | if (address == null || motd == null || version == null) { 32 | return; 33 | } 34 | Bukkit.getScheduler().scheduleSyncDelayedTask(Depenizen.instance, () -> { 35 | BungeeProxyServerListPingScriptEvent.PingData ping = new BungeeProxyServerListPingScriptEvent.PingData(); 36 | ping.address = address; 37 | ping.currentPlayers = currentPlayers; 38 | ping.maxPlayers = maxPlayers; 39 | ping.motd = motd; 40 | ping.protocol = protocol; 41 | ping.version = version; 42 | BungeeProxyServerListPingScriptEvent.instance.data = ping; 43 | BungeeProxyServerListPingScriptEvent.instance.fire(); 44 | ProxyPingResultPacketOut packetOut = new ProxyPingResultPacketOut(); 45 | packetOut.id = id; 46 | packetOut.maxPlayers = ping.maxPlayers; 47 | packetOut.version = ping.version; 48 | packetOut.motd = ping.motd; 49 | packetOut.playerSample = ping.playerSample; 50 | BungeeBridge.instance.sendPacket(packetOut); 51 | }); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/in/RemoveServerPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.in; 2 | 3 | import com.denizenscript.depenizen.bukkit.Depenizen; 4 | import com.denizenscript.depenizen.bukkit.bungee.BungeeBridge; 5 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketIn; 6 | import com.denizenscript.depenizen.bukkit.events.bungee.BungeeServerDisconnectScriptEvent; 7 | import io.netty.buffer.ByteBuf; 8 | import org.bukkit.Bukkit; 9 | 10 | public class RemoveServerPacketIn extends BungeePacketIn { 11 | 12 | @Override 13 | public String getName() { 14 | return "RemoveServer"; 15 | } 16 | 17 | @Override 18 | public void process(ByteBuf data) { 19 | if (data.readableBytes() < 4) { 20 | BungeeBridge.instance.handler.fail("Invalid RemoveServerPacket (bytes available: " + data.readableBytes() + ")"); 21 | return; 22 | } 23 | String serverName = readString(data, "serverName"); 24 | if (serverName == null) { 25 | return; 26 | } 27 | Bukkit.getScheduler().scheduleSyncDelayedTask(Depenizen.instance, () -> { 28 | BungeeBridge.instance.knownServers.remove(serverName); 29 | BungeeServerDisconnectScriptEvent.instance.serverName = serverName; 30 | BungeeServerDisconnectScriptEvent.instance.fire(); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/in/TagResponsePacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.in; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeeBridge; 4 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketIn; 5 | import com.denizenscript.depenizen.bukkit.commands.bungee.BungeeTagCommand; 6 | import io.netty.buffer.ByteBuf; 7 | 8 | public class TagResponsePacketIn extends BungeePacketIn { 9 | 10 | @Override 11 | public String getName() { 12 | return "TagResponse"; 13 | } 14 | 15 | @Override 16 | public void process(ByteBuf data) { 17 | if (data.readableBytes() < 4 + 4) { 18 | BungeeBridge.instance.handler.fail("Invalid TagResponsePacket (bytes available: " + data.readableBytes() + ")"); 19 | return; 20 | } 21 | String result = readString(data, "result"); 22 | if (result == null) { 23 | return; 24 | } 25 | int id = data.readInt(); 26 | BungeeTagCommand.handleResult(id, result); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/in/YourInfoPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.in; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeeBridge; 4 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketIn; 5 | import io.netty.buffer.ByteBuf; 6 | 7 | public class YourInfoPacketIn extends BungeePacketIn { 8 | 9 | @Override 10 | public String getName() { 11 | return "YourInfo"; 12 | } 13 | 14 | @Override 15 | public void process(ByteBuf data) { 16 | String serverName = readString(data, "serverName"); 17 | if (serverName == null) { 18 | return; 19 | } 20 | BungeeBridge.instance.serverName = serverName; 21 | BungeeBridge.instance.connected = true; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/ControlsProxyCommandPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | public class ControlsProxyCommandPacketOut extends BungeePacketOut { 7 | 8 | public ControlsProxyCommandPacketOut(boolean control) { 9 | this.control = control; 10 | canBeFirstPacket = true; 11 | } 12 | 13 | public boolean control; 14 | 15 | @Override 16 | public int getPacketId() { 17 | return 16; 18 | } 19 | 20 | @Override 21 | public void writeTo(ByteBuf buf) { 22 | buf.writeByte(control ? 1 : 0); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/ControlsProxyPingPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | public class ControlsProxyPingPacketOut extends BungeePacketOut { 7 | 8 | public ControlsProxyPingPacketOut(boolean control) { 9 | this.control = control; 10 | canBeFirstPacket = true; 11 | } 12 | 13 | public boolean control; 14 | 15 | @Override 16 | public int getPacketId() { 17 | return 12; 18 | } 19 | 20 | @Override 21 | public void writeTo(ByteBuf buf) { 22 | buf.writeByte(control ? 1 : 0); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/ExecuteCommandPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | public class ExecuteCommandPacketOut extends BungeePacketOut { 7 | 8 | public ExecuteCommandPacketOut(String command) { 9 | this.command = command; 10 | } 11 | 12 | public String command; 13 | 14 | @Override 15 | public int getPacketId() { 16 | return 15; 17 | } 18 | 19 | @Override 20 | public void writeTo(ByteBuf buf) { 21 | writeString(buf, command); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/ExecutePlayerCommandPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | public class ExecutePlayerCommandPacketOut extends BungeePacketOut { 7 | 8 | public ExecutePlayerCommandPacketOut(String player, String command) { 9 | this.player = player; 10 | this.command = command; 11 | } 12 | 13 | public String player, command; 14 | 15 | @Override 16 | public int getPacketId() { 17 | return 18; 18 | } 19 | 20 | @Override 21 | public void writeTo(ByteBuf buf) { 22 | writeString(buf, player); 23 | writeString(buf, command); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/KeepAlivePacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | public class KeepAlivePacketOut extends BungeePacketOut { 7 | 8 | @Override 9 | public int getPacketId() { 10 | return 1; 11 | } 12 | 13 | @Override 14 | public void writeTo(ByteBuf buf) { 15 | // No data 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/MyInfoPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | public class MyInfoPacketOut extends BungeePacketOut { 7 | 8 | public MyInfoPacketOut(int port) { 9 | this.port = port; 10 | canBeFirstPacket = true; 11 | } 12 | 13 | public int port; 14 | 15 | @Override 16 | public int getPacketId() { 17 | return 11; 18 | } 19 | 20 | @Override 21 | public void writeTo(ByteBuf buf) { 22 | buf.writeInt(port); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/ProxyCommandResultPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | public class ProxyCommandResultPacketOut extends BungeePacketOut { 7 | 8 | public long id; 9 | 10 | public String result; 11 | 12 | @Override 13 | public int getPacketId() { 14 | return 17; 15 | } 16 | 17 | @Override 18 | public void writeTo(ByteBuf buf) { 19 | buf.writeLong(id); 20 | writeString(buf, result); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/ProxyPingResultPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import com.denizenscript.depenizen.bukkit.events.bungee.BungeeProxyServerListPingScriptEvent; 5 | import io.netty.buffer.ByteBuf; 6 | 7 | import java.util.List; 8 | 9 | public class ProxyPingResultPacketOut extends BungeePacketOut { 10 | 11 | public long id; 12 | 13 | public int maxPlayers; 14 | 15 | public String version; 16 | 17 | public String motd; 18 | 19 | public List playerSample; 20 | 21 | @Override 22 | public int getPacketId() { 23 | return 13; 24 | } 25 | 26 | @Override 27 | public void writeTo(ByteBuf buf) { 28 | buf.writeLong(id); 29 | buf.writeInt(maxPlayers); 30 | writeString(buf, version); 31 | writeString(buf, motd); 32 | if (playerSample == null) { 33 | buf.writeInt(-1); 34 | } 35 | else { 36 | buf.writeInt(playerSample.size()); 37 | for (int i = 0; i < playerSample.size(); i++) { 38 | writeString(buf, playerSample.get(i).name); 39 | buf.writeLong(playerSample.get(i).id.getMostSignificantBits()); 40 | buf.writeLong(playerSample.get(i).id.getLeastSignificantBits()); 41 | } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/RedirectPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | public class RedirectPacketOut extends BungeePacketOut { 7 | 8 | public RedirectPacketOut(String server, BungeePacketOut toSend) { 9 | this.server = server; 10 | this.toSend = toSend; 11 | } 12 | 13 | public String server; 14 | 15 | public BungeePacketOut toSend; 16 | 17 | @Override 18 | public int getPacketId() { 19 | return 14; 20 | } 21 | 22 | @Override 23 | public void writeTo(ByteBuf buf) { 24 | writeString(buf, server); 25 | ByteBuf nbuf = buf.alloc().buffer(); 26 | toSend.writeTo(nbuf); 27 | buf.writeInt(nbuf.writerIndex()); 28 | buf.writeInt(toSend.getPacketId()); 29 | buf.writeBytes(nbuf); 30 | nbuf.release(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/redirectable/ReadTagPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out.redirectable; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeeBridge; 4 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 5 | import io.netty.buffer.ByteBuf; 6 | 7 | import java.util.UUID; 8 | 9 | public class ReadTagPacketOut extends BungeePacketOut { 10 | 11 | public String tag; 12 | 13 | public UUID playerUUID; 14 | 15 | public String defs; 16 | 17 | public int id; 18 | 19 | @Override 20 | public int getPacketId() { 21 | return 59; 22 | } 23 | 24 | @Override 25 | public void writeTo(ByteBuf buf) { 26 | writeString(buf, BungeeBridge.instance.serverName); 27 | writeString(buf, tag); 28 | writeString(buf, defs); 29 | buf.writeLong(playerUUID.getMostSignificantBits()); 30 | buf.writeLong(playerUUID.getLeastSignificantBits()); 31 | buf.writeInt(id); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/redirectable/RunCommandsPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out.redirectable; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | import java.util.UUID; 7 | 8 | public class RunCommandsPacketOut extends BungeePacketOut { 9 | 10 | public RunCommandsPacketOut(String commands, String defs, boolean shouldDebug, UUID playerUUID) { 11 | this.commands = commands; 12 | this.defs = defs; 13 | this.shouldDebug = shouldDebug; 14 | this.playerUUID = playerUUID; 15 | } 16 | 17 | public String commands; 18 | 19 | public String defs; 20 | 21 | public boolean shouldDebug; 22 | 23 | public UUID playerUUID; 24 | 25 | @Override 26 | public int getPacketId() { 27 | return 58; 28 | } 29 | 30 | @Override 31 | public void writeTo(ByteBuf buf) { 32 | writeString(buf, commands); 33 | writeString(buf, defs); 34 | buf.writeByte(shouldDebug ? 1 : 0); 35 | buf.writeLong(playerUUID.getMostSignificantBits()); 36 | buf.writeLong(playerUUID.getLeastSignificantBits()); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/redirectable/RunScriptPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out.redirectable; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | import java.util.UUID; 7 | 8 | public class RunScriptPacketOut extends BungeePacketOut { 9 | 10 | public String scriptName; 11 | 12 | public UUID playerUUID; 13 | 14 | public String defs; 15 | 16 | @Override 17 | public int getPacketId() { 18 | return 57; 19 | } 20 | 21 | @Override 22 | public void writeTo(ByteBuf buf) { 23 | writeString(buf, scriptName); 24 | writeString(buf, defs); 25 | buf.writeLong(playerUUID.getMostSignificantBits()); 26 | buf.writeLong(playerUUID.getLeastSignificantBits()); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/bungee/packets/out/redirectable/TagResponsePacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.bungee.packets.out.redirectable; 2 | 3 | import com.denizenscript.depenizen.bukkit.bungee.BungeePacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | public class TagResponsePacketOut extends BungeePacketOut { 7 | 8 | public String result; 9 | 10 | public int id; 11 | 12 | @Override 13 | public int getPacketId() { 14 | return 60; 15 | } 16 | 17 | @Override 18 | public void writeTo(ByteBuf buf) { 19 | writeString(buf, result); 20 | buf.writeInt(id); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/clientizen/network/ClientizenPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.clientizen.network; 2 | 3 | import com.denizenscript.depenizen.bukkit.networking.PacketIn; 4 | import io.netty.buffer.ByteBuf; 5 | import org.bukkit.entity.Player; 6 | 7 | public abstract class ClientizenPacketIn extends PacketIn { 8 | 9 | @Override 10 | public void process(ByteBuf data) { 11 | throw new UnsupportedOperationException(); 12 | } 13 | 14 | public abstract void process(Player sender, ByteBuf data); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/clientizen/network/ClientizenPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.clientizen.network; 2 | 3 | import com.denizenscript.depenizen.bukkit.networking.PacketOut; 4 | 5 | public abstract class ClientizenPacketOut extends PacketOut { 6 | 7 | public final String channel = NetworkManager.channel(getName()); 8 | 9 | public abstract String getName(); 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/clientizen/network/packets/FireEventPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.clientizen.network.packets; 2 | 3 | import com.denizenscript.depenizen.bukkit.Depenizen; 4 | import com.denizenscript.depenizen.bukkit.clientizen.ClientizenEventScriptEvent; 5 | import com.denizenscript.depenizen.bukkit.clientizen.network.ClientizenPacketIn; 6 | import io.netty.buffer.ByteBuf; 7 | import org.bukkit.entity.Player; 8 | 9 | import java.util.Map; 10 | 11 | public class FireEventPacketIn extends ClientizenPacketIn { 12 | 13 | public static final boolean ENABLED = Depenizen.instance.getConfig().getBoolean("Clientizen.process events"); 14 | 15 | @Override 16 | public void process(Player sender, ByteBuf data) { 17 | if (ENABLED && ClientizenEventScriptEvent.instance.eventData.isEnabled) { 18 | String id = readString(data, "Event ID"); 19 | Map contexts = readStringMap(data); 20 | if (id == null || contexts == null) { 21 | return; 22 | } 23 | ClientizenEventScriptEvent.instance.fire(sender, id, contexts); 24 | } 25 | } 26 | 27 | @Override 28 | public String getName() { 29 | return "fire_event"; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/clientizen/network/packets/ReceiveConfirmationPacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.clientizen.network.packets; 2 | 3 | import com.denizenscript.depenizen.bukkit.clientizen.ClientizenBridge; 4 | import com.denizenscript.depenizen.bukkit.clientizen.network.ClientizenPacketIn; 5 | import io.netty.buffer.ByteBuf; 6 | import org.bukkit.entity.Player; 7 | 8 | public class ReceiveConfirmationPacketIn extends ClientizenPacketIn { 9 | 10 | @Override 11 | public void process(Player sender, ByteBuf data) { 12 | ClientizenBridge.acceptNewPlayer(sender); 13 | } 14 | 15 | @Override 16 | public String getName() { 17 | return "confirmation"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/clientizen/network/packets/RunClientScriptPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.clientizen.network.packets; 2 | 3 | import com.denizenscript.depenizen.bukkit.clientizen.network.ClientizenPacketOut; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | import java.util.Map; 7 | 8 | public class RunClientScriptPacketOut extends ClientizenPacketOut { 9 | 10 | public RunClientScriptPacketOut(String script, String path, Map definitions) { 11 | this.script = script; 12 | this.path = path; 13 | this.definitions = definitions; 14 | } 15 | 16 | String script; 17 | String path; 18 | Map definitions; 19 | 20 | @Override 21 | public void writeTo(ByteBuf buf) { 22 | writeString(buf, script); 23 | writeNullable(buf, path, this::writeString); 24 | writeStringMap(buf, definitions); 25 | } 26 | 27 | @Override 28 | public String getName() { 29 | return "run_script"; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/clientizen/network/packets/SetScriptsPacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.clientizen.network.packets; 2 | 3 | import com.denizenscript.depenizen.bukkit.clientizen.network.ClientizenPacketOut; 4 | import com.denizenscript.depenizen.bukkit.clientizen.network.NetworkManager; 5 | import io.netty.buffer.ByteBuf; 6 | import io.netty.buffer.Unpooled; 7 | 8 | import java.util.Map; 9 | 10 | public class SetScriptsPacketOut extends ClientizenPacketOut { 11 | 12 | public SetScriptsPacketOut(Map scripts) { 13 | ByteBuf buf = Unpooled.buffer(); 14 | writeStringMap(buf, scripts); 15 | this.scriptsData = NetworkManager.bufToBytes(buf); 16 | } 17 | 18 | private final byte[] scriptsData; 19 | 20 | @Override 21 | public void writeTo(ByteBuf buf) { 22 | buf.writeBytes(scriptsData); 23 | } 24 | 25 | @Override 26 | public String getName() { 27 | return "set_scripts"; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/areashop/AreaShopBoughtScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.areashop; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.denizenscript.depenizen.bukkit.objects.areashop.AreaShopTag; 9 | import me.wiefferink.areashop.events.notify.BoughtRegionEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class AreaShopBoughtScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // areashop <'shop'> bought 18 | // 19 | // @Triggers when an AreaShop is bought. 20 | // 21 | // @Context 22 | // returns the AreaShop that's being bought. 23 | // 24 | // @Plugin Depenizen, AreaShop 25 | // 26 | // @Player Always (the buyer). 27 | // 28 | // @Group Depenizen 29 | // 30 | // --> 31 | 32 | public AreaShopBoughtScriptEvent() { 33 | registerCouldMatcher("areashop <'shop'> bought"); 34 | } 35 | 36 | public BoughtRegionEvent event; 37 | public AreaShopTag areaShop; 38 | 39 | @Override 40 | public boolean matches(ScriptPath path) { 41 | String shopName = path.eventArgLowerAt(2).replace("areashop@", ""); 42 | if (!shopName.equals("shop") && !areaShop.equals(AreaShopTag.valueOf(shopName, getTagContext(path)))) { 43 | return false; 44 | } 45 | return super.matches(path); 46 | } 47 | 48 | @Override 49 | public ScriptEntryData getScriptEntryData() { 50 | return new BukkitScriptEntryData(new PlayerTag(event.getRegion().getBuyer()), null); 51 | } 52 | 53 | @Override 54 | public ObjectTag getContext(String name) { 55 | return switch (name) { 56 | case "shop" -> areaShop; 57 | default -> super.getContext(name); 58 | }; 59 | } 60 | 61 | @EventHandler 62 | public void onAreaShopEvent(BoughtRegionEvent event) { 63 | areaShop = new AreaShopTag(event.getRegion()); 64 | this.event = event; 65 | fire(event); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/areashop/AreaShopExpiresScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.areashop; 2 | 3 | import me.wiefferink.areashop.events.notify.UnrentedRegionEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizen.events.BukkitScriptEvent; 6 | import com.denizenscript.denizen.objects.PlayerTag; 7 | import com.denizenscript.denizencore.objects.ObjectTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import com.denizenscript.depenizen.bukkit.objects.areashop.AreaShopTag; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class AreaShopExpiresScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // areashop <'shop'> expires 18 | // 19 | // @Triggers when an AreaShop's rent expires. 20 | // 21 | // @Context 22 | // Returns the AreaShop that's expiring. 23 | // 24 | // @Plugin Depenizen, AreaShop 25 | // 26 | // @Player Always. 27 | // 28 | // @Group Depenizen 29 | // 30 | // --> 31 | 32 | public AreaShopExpiresScriptEvent() { 33 | registerCouldMatcher("areashop <'shop'> expires"); 34 | } 35 | 36 | public UnrentedRegionEvent event; 37 | public AreaShopTag areaShop; 38 | 39 | @Override 40 | public boolean matches(ScriptPath path) { 41 | String shopName = path.eventArgLowerAt(2).replace("areashop@", ""); 42 | if (!shopName.equals("shop") && !areaShop.equals(AreaShopTag.valueOf(shopName, getTagContext(path)))) { 43 | return false; 44 | } 45 | return super.matches(path); 46 | } 47 | 48 | @Override 49 | public ScriptEntryData getScriptEntryData() { 50 | return new BukkitScriptEntryData(new PlayerTag(event.getOldRenter()), null); 51 | } 52 | 53 | @Override 54 | public ObjectTag getContext(String name) { 55 | return switch (name) { 56 | case "shop" -> areaShop; 57 | default -> super.getContext(name); 58 | }; 59 | } 60 | 61 | @EventHandler 62 | public void onAreaShopExpires(UnrentedRegionEvent event) { 63 | if (event.getRefundedMoney() > 0) { 64 | return; 65 | } 66 | areaShop = new AreaShopTag(event.getRegion()); 67 | this.event = event; 68 | fire(event); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/areashop/AreaShopResoldScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.areashop; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.denizenscript.depenizen.bukkit.objects.areashop.AreaShopTag; 9 | import me.wiefferink.areashop.events.notify.ResoldRegionEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class AreaShopResoldScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // areashop <'shop'> resold 18 | // 19 | // @Triggers when an AreaShop is resold. 20 | // 21 | // @Context 22 | // returns the AreaShop that's being resold. 23 | // returns the player that has resold the shop. 24 | // 25 | // @Plugin Depenizen, AreaShop 26 | // 27 | // @Player Always (the buyer). 28 | // 29 | // @Group Depenizen 30 | // 31 | // --> 32 | 33 | public AreaShopResoldScriptEvent() { 34 | registerCouldMatcher("areashop <'shop'> resold"); 35 | } 36 | 37 | public ResoldRegionEvent event; 38 | public AreaShopTag areaShop; 39 | 40 | @Override 41 | public boolean matches(ScriptPath path) { 42 | String shopName = path.eventArgLowerAt(2).replace("areashop@", ""); 43 | if (!shopName.equals("shop") && !areaShop.equals(AreaShopTag.valueOf(shopName, getTagContext(path)))) { 44 | return false; 45 | } 46 | return super.matches(path); 47 | } 48 | 49 | @Override 50 | public ScriptEntryData getScriptEntryData() { 51 | return new BukkitScriptEntryData(new PlayerTag(event.getRegion().getBuyer()), null); 52 | } 53 | 54 | @Override 55 | public ObjectTag getContext(String name) { 56 | return switch (name) { 57 | case "shop" -> areaShop; 58 | case "seller" -> new PlayerTag(event.getFromPlayer()); 59 | default -> super.getContext(name); 60 | }; 61 | } 62 | 63 | @EventHandler 64 | public void onAreaShopEvent(ResoldRegionEvent event) { 65 | areaShop = new AreaShopTag(event.getRegion()); 66 | this.event = event; 67 | fire(event); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/areashop/AreaShopSoldScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.areashop; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.denizenscript.depenizen.bukkit.objects.areashop.AreaShopTag; 9 | import me.wiefferink.areashop.events.notify.SoldRegionEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class AreaShopSoldScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // areashop <'shop'> sold 18 | // 19 | // @Triggers when an AreaShop is resold. 20 | // 21 | // @Context 22 | // returns the AreaShop that's being sold. 23 | // 24 | // @Plugin Depenizen, AreaShop 25 | // 26 | // @Player Always (the old buyer). 27 | // 28 | // @Group Depenizen 29 | // 30 | // --> 31 | 32 | public AreaShopSoldScriptEvent() { 33 | registerCouldMatcher("areashop <'shop'> sold"); 34 | } 35 | 36 | public SoldRegionEvent event; 37 | public AreaShopTag areaShop; 38 | 39 | @Override 40 | public boolean matches(ScriptPath path) { 41 | String shopName = path.eventArgLowerAt(2).replace("areashop@", ""); 42 | if (!shopName.equals("shop") && !areaShop.equals(AreaShopTag.valueOf(shopName, getTagContext(path)))) { 43 | return false; 44 | } 45 | return super.matches(path); 46 | } 47 | 48 | @Override 49 | public ScriptEntryData getScriptEntryData() { 50 | return new BukkitScriptEntryData(new PlayerTag(event.getOldBuyer()), null); 51 | } 52 | 53 | @Override 54 | public ObjectTag getContext(String name) { 55 | return switch (name) { 56 | case "shop" -> areaShop; 57 | default -> super.getContext(name); 58 | }; 59 | } 60 | 61 | @EventHandler 62 | public void onAreaShopEvent(SoldRegionEvent event) { 63 | areaShop = new AreaShopTag(event.getRegion()); 64 | this.event = event; 65 | fire(event); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/arikeys/AriKeysKeyPressScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.arikeys; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.objects.core.ElementTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import eu.asangarin.arikeys.api.AriKeyPressEvent; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class AriKeysKeyPressScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // arikeys key pressed 17 | // 18 | // @Location true 19 | // 20 | // @Switch id: to only process the event if the key ID matches the given text matcher. 21 | // 22 | // @Triggers When a key is pressed by a client running AriKeys, if that key is in the AriKeys config. 23 | // 24 | // @Context 25 | // Returns the ID of the key that was pressed according to the AriKeys config, as a namespaced key. 26 | // 27 | // @Player Always. 28 | // 29 | // @Plugin Depenizen, AriKeys 30 | // 31 | // @Group Depenizen 32 | // 33 | // --> 34 | 35 | public AriKeysKeyPressScriptEvent() { 36 | registerCouldMatcher("arikeys key pressed"); 37 | registerSwitches("id"); 38 | } 39 | 40 | public AriKeyPressEvent event; 41 | 42 | @Override 43 | public boolean matches(ScriptPath path) { 44 | if (!runGenericSwitchCheck(path, "id", String.valueOf(event.getId()))) { 45 | return false; 46 | } 47 | if (!runInCheck(path, event.getPlayer().getLocation())) { 48 | return false; 49 | } 50 | return super.matches(path); 51 | } 52 | 53 | @Override 54 | public ScriptEntryData getScriptEntryData() { 55 | return new BukkitScriptEntryData(event.getPlayer()); 56 | } 57 | 58 | @Override 59 | public ObjectTag getContext(String name) { 60 | return switch (name) { 61 | case "id" -> new ElementTag(event.getId().toString()); 62 | default -> super.getContext(name); 63 | }; 64 | } 65 | 66 | @EventHandler 67 | public void onKeyPress(AriKeyPressEvent event) { 68 | this.event = event; 69 | fire(event); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/arikeys/AriKeysKeyReleaseScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.arikeys; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.objects.core.ElementTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import eu.asangarin.arikeys.api.AriKeyReleaseEvent; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class AriKeysKeyReleaseScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // arikeys key released 17 | // 18 | // @Location true 19 | // 20 | // @Switch id: to only process the event if the key ID matches the given text matcher. 21 | // 22 | // @Triggers When a key stops being pressed by a client running AriKeys, if that key is in the AriKeys config. 23 | // 24 | // @Context 25 | // Returns the ID of the key that was released according to the AriKeys config, as a namespaced key. 26 | // 27 | // @Player Always. 28 | // 29 | // @Plugin Depenizen, AriKeys 30 | // 31 | // @Group Depenizen 32 | // 33 | // --> 34 | 35 | public AriKeysKeyReleaseScriptEvent() { 36 | registerCouldMatcher("arikeys key released"); 37 | registerSwitches("id"); 38 | } 39 | 40 | public AriKeyReleaseEvent event; 41 | 42 | @Override 43 | public boolean matches(ScriptPath path) { 44 | if (!runGenericSwitchCheck(path, "id", String.valueOf(event.getId()))) { 45 | return false; 46 | } 47 | if (!runInCheck(path, event.getPlayer().getLocation())) { 48 | return false; 49 | } 50 | return super.matches(path); 51 | } 52 | 53 | @Override 54 | public ScriptEntryData getScriptEntryData() { 55 | return new BukkitScriptEntryData(event.getPlayer()); 56 | } 57 | 58 | @Override 59 | public ObjectTag getContext(String name) { 60 | return switch (name) { 61 | case "id" -> new ElementTag(event.getId().toString()); 62 | default -> super.getContext(name); 63 | }; 64 | } 65 | 66 | @EventHandler 67 | public void onKeyRelease(AriKeyReleaseEvent event) { 68 | this.event = event; 69 | fire(event); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/askyblock/SkyBlockCreatedScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.askyblock; 2 | 3 | import com.wasteofplastic.askyblock.events.IslandNewEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizen.events.BukkitScriptEvent; 6 | import com.denizenscript.denizen.objects.LocationTag; 7 | import com.denizenscript.denizen.objects.PlayerTag; 8 | import com.denizenscript.denizencore.objects.core.ElementTag; 9 | import com.denizenscript.denizencore.objects.ObjectTag; 10 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 11 | import org.bukkit.event.EventHandler; 12 | import org.bukkit.event.Listener; 13 | 14 | public class SkyBlockCreatedScriptEvent extends BukkitScriptEvent implements Listener { 15 | 16 | // <--[event] 17 | // @Events 18 | // skyblock island created 19 | // 20 | // @Regex ^on skyblock island created$ 21 | // 22 | // @Triggers when a new skyblock is created. 23 | // 24 | // @Context 25 | // Returns the location of the island. 26 | // Returns the name of the schematic used for the island. 27 | // 28 | // @Plugin Depenizen, A SkyBlock 29 | // 30 | // @Player Always. 31 | // 32 | // @Group Depenizen 33 | // 34 | // --> 35 | 36 | public IslandNewEvent event; 37 | public LocationTag location; 38 | public ElementTag schematic; 39 | public PlayerTag owner; 40 | 41 | public SkyBlockCreatedScriptEvent() { 42 | } 43 | 44 | @Override 45 | public boolean couldMatch(ScriptPath path) { 46 | return path.eventLower.startsWith("skyblock island created"); 47 | } 48 | 49 | @Override 50 | public ScriptEntryData getScriptEntryData() { 51 | return new BukkitScriptEntryData(owner, null); 52 | } 53 | 54 | @Override 55 | public ObjectTag getContext(String name) { 56 | return switch (name) { 57 | case "location" -> location; 58 | case "schematic" -> schematic; 59 | default -> super.getContext(name); 60 | }; 61 | } 62 | 63 | @EventHandler 64 | public void onSkyBlockCreated(IslandNewEvent event) { 65 | location = new LocationTag(event.getIslandLocation()); 66 | schematic = new ElementTag(event.getSchematicName().getName()); 67 | owner = PlayerTag.mirrorBukkitPlayer(event.getPlayer()); 68 | this.event = event; 69 | fire(event); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/askyblock/SkyBlockResetScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.askyblock; 2 | 3 | import com.wasteofplastic.askyblock.events.IslandResetEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizen.events.BukkitScriptEvent; 6 | import com.denizenscript.denizen.objects.LocationTag; 7 | import com.denizenscript.denizen.objects.PlayerTag; 8 | import com.denizenscript.denizencore.objects.ObjectTag; 9 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class SkyBlockResetScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // skyblock island reset 18 | // 19 | // @Regex ^on skyblock island reset$ 20 | // 21 | // @Triggers when a new skyblock is reset. 22 | // 23 | // @Context 24 | // Returns the location of the island. 25 | // 26 | // @Plugin Depenizen, A SkyBlock 27 | // 28 | // @Player Always. 29 | // 30 | // @Group Depenizen 31 | // 32 | // --> 33 | 34 | public IslandResetEvent event; 35 | public LocationTag location; 36 | public PlayerTag owner; 37 | 38 | public SkyBlockResetScriptEvent() { 39 | } 40 | 41 | @Override 42 | public boolean couldMatch(ScriptPath path) { 43 | return path.eventLower.startsWith("skyblock island reset"); 44 | } 45 | 46 | @Override 47 | public ScriptEntryData getScriptEntryData() { 48 | return new BukkitScriptEntryData(owner, null); 49 | } 50 | 51 | @Override 52 | public ObjectTag getContext(String name) { 53 | return switch (name) { 54 | case "location" -> location; 55 | default -> super.getContext(name); 56 | }; 57 | } 58 | 59 | @EventHandler 60 | public void onSkyBlockReset(IslandResetEvent event) { 61 | location = new LocationTag(event.getLocation()); 62 | owner = PlayerTag.mirrorBukkitPlayer(event.getPlayer()); 63 | this.event = event; 64 | fire(event); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/bungee/BungeeServerConnectScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.bungee; 2 | 3 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 4 | import com.denizenscript.denizen.events.BukkitScriptEvent; 5 | import com.denizenscript.denizencore.objects.core.ElementTag; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | 9 | public class BungeeServerConnectScriptEvent extends BukkitScriptEvent { 10 | 11 | // <--[event] 12 | // @Events 13 | // bungee server connects 14 | // 15 | // @Regex ^on bungee server connects$ 16 | // 17 | // @Triggers when another server on the Bungee network becomes connected. 18 | // 19 | // @Context 20 | // returns the name of the newly connected server. 21 | // 22 | // @Plugin Depenizen, DepenizenBungee, BungeeCord 23 | // 24 | // @Group Depenizen 25 | // 26 | // --> 27 | 28 | public BungeeServerConnectScriptEvent() { 29 | instance = this; 30 | } 31 | 32 | public static BungeeServerConnectScriptEvent instance; 33 | 34 | public String serverName; 35 | 36 | @Override 37 | public boolean couldMatch(ScriptPath path) { 38 | return path.eventLower.startsWith("bungee server connects"); 39 | } 40 | 41 | @Override 42 | public ScriptEntryData getScriptEntryData() { 43 | return new BukkitScriptEntryData(null, null); 44 | } 45 | 46 | @Override 47 | public ObjectTag getContext(String name) { 48 | return switch (name) { 49 | case "server" -> new ElementTag(serverName); 50 | default -> super.getContext(name); 51 | }; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/bungee/BungeeServerDisconnectScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.bungee; 2 | 3 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 4 | import com.denizenscript.denizen.events.BukkitScriptEvent; 5 | import com.denizenscript.denizencore.objects.core.ElementTag; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | 9 | public class BungeeServerDisconnectScriptEvent extends BukkitScriptEvent { 10 | 11 | // <--[event] 12 | // @Events 13 | // bungee server disconnects 14 | // 15 | // @Regex ^on bungee server disconnects$ 16 | // 17 | // @Triggers when another server on the Bungee network becomes disconnected. 18 | // 19 | // @Context 20 | // returns the name of the previously connected server. 21 | // 22 | // @Plugin Depenizen, DepenizenBungee, BungeeCord 23 | // 24 | // @Group Depenizen 25 | // 26 | // --> 27 | 28 | public BungeeServerDisconnectScriptEvent() { 29 | instance = this; 30 | } 31 | 32 | public static BungeeServerDisconnectScriptEvent instance; 33 | 34 | public String serverName; 35 | 36 | @Override 37 | public boolean couldMatch(ScriptPath path) { 38 | return path.eventLower.startsWith("bungee server disconnects"); 39 | } 40 | 41 | @Override 42 | public ScriptEntryData getScriptEntryData() { 43 | return new BukkitScriptEntryData(null, null); 44 | } 45 | 46 | @Override 47 | public ObjectTag getContext(String name) { 48 | return switch (name) { 49 | case "server" -> new ElementTag(serverName); 50 | default -> super.getContext(name); 51 | }; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/chestshop/ChestShopShopDeletedScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.chestshop; 2 | 3 | import com.Acrobot.ChestShop.Events.ShopDestroyedEvent; 4 | import com.denizenscript.denizen.events.BukkitScriptEvent; 5 | import com.denizenscript.denizen.objects.LocationTag; 6 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 7 | import com.denizenscript.denizencore.objects.ObjectTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class ChestShopShopDeletedScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // chestshop shop deleted 17 | // 18 | // @Triggers when a chestshop is deleted. 19 | // 20 | // @Context 21 | // returns a LocationTag of the container attached to the shop, if any. 22 | // returns a LocationTag of the sign. 23 | // 24 | // @Plugin Depenizen, ChestShop 25 | // 26 | // @Player Always. 27 | // 28 | // @Group Depenizen 29 | // 30 | // --> 31 | 32 | public ChestShopShopDeletedScriptEvent() { 33 | registerCouldMatcher("chestshop shop deleted"); 34 | } 35 | 36 | public ShopDestroyedEvent event; 37 | 38 | @Override 39 | public ScriptEntryData getScriptEntryData() { 40 | return new BukkitScriptEntryData(event.getDestroyer()); 41 | } 42 | 43 | @Override 44 | public ObjectTag getContext(String name) { 45 | return switch (name) { 46 | case "container" -> event.getContainer() == null ? null : new LocationTag(event.getContainer().getLocation()); 47 | case "sign" -> new LocationTag(event.getSign().getLocation()); 48 | default -> super.getContext(name); 49 | }; 50 | } 51 | 52 | @EventHandler 53 | public void onChestShopDeleted(ShopDestroyedEvent event) { 54 | this.event = event; 55 | fire(event); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/crackshot/CrackShotLandmineTriggerEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.crackshot; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.EntityTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import com.shampaggon.crackshot.events.WeaponTriggerEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class CrackShotLandmineTriggerEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // crackshot landmine triggered 18 | // 19 | // @Regex ^on crackshot landmine triggered$ 20 | // 21 | // @Triggers when a CrackShot landmine is triggered by an entity walking through it. 22 | // 23 | // @Cancellable true 24 | // 25 | // @Context 26 | // returns the weapon name of the landmine. 27 | // returns the entity that triggered the landmine. 28 | // 29 | // @Plugin Depenizen, CrackShot 30 | // 31 | // @Player Always 32 | // 33 | // @Group Depenizen 34 | // 35 | // --> 36 | 37 | public static CrackShotLandmineTriggerEvent instance; 38 | public WeaponTriggerEvent event; 39 | 40 | public CrackShotLandmineTriggerEvent() { 41 | } 42 | 43 | @Override 44 | public ScriptEntryData getScriptEntryData() { 45 | return new BukkitScriptEntryData(event.getPlayer()); 46 | } 47 | 48 | @Override 49 | public boolean couldMatch(ScriptPath path) { 50 | return path.eventLower.startsWith("crackshot landmine triggered"); 51 | } 52 | 53 | @Override 54 | public ObjectTag getContext(String name) { 55 | return switch (name) { 56 | case "victim" -> new EntityTag(event.getVictim()).getDenizenObject(); 57 | case "weapon" -> new ElementTag(event.getWeaponTitle()); 58 | default -> super.getContext(name); 59 | }; 60 | } 61 | 62 | @EventHandler 63 | public void onLandMineTrigger(WeaponTriggerEvent event) { 64 | this.event = event; 65 | fire(event); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/crackshot/CrackShotPlayerFinishesReloadingWeaponEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.crackshot; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.objects.core.ElementTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.shampaggon.crackshot.events.WeaponReloadCompleteEvent; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class CrackShotPlayerFinishesReloadingWeaponEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // crackshot player finishes reloading weapon 17 | // 18 | // @Regex ^on crackshot player finishes reloading weapon$ 19 | // 20 | // @Triggers when a player finishes reloading their CrackShot weapon. 21 | // 22 | // @Context 23 | // returns the name of the weapon. 24 | // 25 | // @Plugin Depenizen, CrackShot 26 | // 27 | // @Player Always 28 | // 29 | // @Group Depenizen 30 | // 31 | // --> 32 | 33 | public static CrackShotPlayerFinishesReloadingWeaponEvent instance; 34 | public WeaponReloadCompleteEvent event; 35 | 36 | public CrackShotPlayerFinishesReloadingWeaponEvent() { 37 | } 38 | 39 | @Override 40 | public ScriptEntryData getScriptEntryData() { 41 | return new BukkitScriptEntryData(event.getPlayer()); 42 | } 43 | 44 | @Override 45 | public boolean couldMatch(ScriptPath path) { 46 | return path.eventLower.startsWith("crackshot player finishes reloading weapon"); 47 | } 48 | 49 | @Override 50 | public ObjectTag getContext(String name) { 51 | return switch (name) { 52 | case "weapon" -> new ElementTag(event.getWeaponTitle()); 53 | default -> super.getContext(name); 54 | }; 55 | } 56 | 57 | @EventHandler 58 | public void onFinishesReloading(WeaponReloadCompleteEvent event) { 59 | this.event = event; 60 | fire(event); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/crackshot/CrackShotPlayerPlacesLandmineEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.crackshot; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.EntityTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.shampaggon.crackshot.events.WeaponPlaceMineEvent; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class CrackShotPlayerPlacesLandmineEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // crackshot player places landmine 17 | // 18 | // @Regex ^on crackshot player places landmine$ 19 | // 20 | // @Triggers when a player places a landmine. 21 | // 22 | // @Context 23 | // returns the EntityTag for the landmine. 24 | // 25 | // @Plugin Depenizen, CrackShot 26 | // 27 | // @Player Always 28 | // 29 | // @Group Depenizen 30 | // 31 | // --> 32 | 33 | public static CrackShotPlayerPlacesLandmineEvent instance; 34 | public WeaponPlaceMineEvent event; 35 | 36 | public CrackShotPlayerPlacesLandmineEvent() { 37 | } 38 | 39 | @Override 40 | public ScriptEntryData getScriptEntryData() { 41 | return new BukkitScriptEntryData(event.getPlayer()); 42 | } 43 | 44 | @Override 45 | public boolean couldMatch(ScriptPath path) { 46 | return path.eventLower.startsWith("crackshot player places landmine"); 47 | } 48 | 49 | @Override 50 | public ObjectTag getContext(String name) { 51 | return switch (name) { 52 | case "landmine" -> new EntityTag(event.getMine()); 53 | default -> super.getContext(name); 54 | }; 55 | } 56 | 57 | @EventHandler 58 | public void onPlacesLandmine(WeaponPlaceMineEvent event) { 59 | this.event = event; 60 | fire(event); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/crackshot/CrackShotPlayerStartsFiringWeaponEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.crackshot; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.objects.core.ElementTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.shampaggon.crackshot.events.WeaponPrepareShootEvent; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class CrackShotPlayerStartsFiringWeaponEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // crackshot player starts firing weapon 17 | // 18 | // @Regex ^on crackshot player starts firing weapon$ 19 | // 20 | // @Triggers when a player tries to start firing a CrackShot weapon. 21 | // 22 | // @Cancellable true 23 | // 24 | // @Context 25 | // returns the name of the weapon. 26 | // 27 | // @Plugin Depenizen, CrackShot 28 | // 29 | // @Player Always 30 | // 31 | // @Group Depenizen 32 | // 33 | // --> 34 | 35 | public static CrackShotPlayerStartsFiringWeaponEvent instance; 36 | public WeaponPrepareShootEvent event; 37 | 38 | public CrackShotPlayerStartsFiringWeaponEvent() { 39 | } 40 | 41 | @Override 42 | public ScriptEntryData getScriptEntryData() { 43 | return new BukkitScriptEntryData(event.getPlayer()); 44 | } 45 | 46 | @Override 47 | public boolean couldMatch(ScriptPath path) { 48 | return path.eventLower.startsWith("crackshot player starts firing weapon"); 49 | } 50 | 51 | @Override 52 | public ObjectTag getContext(String name) { 53 | return switch (name) { 54 | case "weapon" -> new ElementTag(event.getWeaponTitle()); 55 | default -> super.getContext(name); 56 | }; 57 | } 58 | 59 | @EventHandler 60 | public void onStartsFiringWeapon(WeaponPrepareShootEvent event) { 61 | this.event = event; 62 | fire(event); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/crackshot/CrackShotPlayerZoomsWeaponScopeEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.crackshot; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.objects.core.ElementTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.shampaggon.crackshot.events.WeaponScopeEvent; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class CrackShotPlayerZoomsWeaponScopeEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // crackshot player zooms weapon scope 17 | // 18 | // @Regex ^on crackshot player zooms weapon scope$ 19 | // 20 | // @Triggers when a player zooms their CrackShot weapon scope. 21 | // 22 | // @Cancellable true 23 | // 24 | // @Context 25 | // returns the name of the weapon. 26 | // returns whether the player zoomed in. 27 | // 28 | // @Plugin Depenizen, CrackShot 29 | // 30 | // @Player Always 31 | // 32 | // @Group Depenizen 33 | // 34 | // --> 35 | 36 | public static CrackShotPlayerZoomsWeaponScopeEvent instance; 37 | public WeaponScopeEvent event; 38 | 39 | public CrackShotPlayerZoomsWeaponScopeEvent() { 40 | } 41 | 42 | @Override 43 | public ScriptEntryData getScriptEntryData() { 44 | return new BukkitScriptEntryData(event.getPlayer()); 45 | } 46 | 47 | @Override 48 | public boolean couldMatch(ScriptPath path) { 49 | return path.eventLower.startsWith("crackshot player zooms weapon scope"); 50 | } 51 | 52 | @Override 53 | public ObjectTag getContext(String name) { 54 | return switch (name) { 55 | case "weapon" -> new ElementTag(event.getWeaponTitle()); 56 | case "zoomed" -> new ElementTag(event.isZoomIn()); 57 | default -> super.getContext(name); 58 | }; 59 | } 60 | 61 | @EventHandler 62 | public void onZoomsWeapon(WeaponScopeEvent event) { 63 | this.event = event; 64 | fire(event); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/griefprevention/GPClaimCreatedScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.griefprevention; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import com.denizenscript.depenizen.bukkit.objects.griefprevention.GriefPreventionClaimTag; 10 | import me.ryanhamshire.GriefPrevention.events.ClaimCreatedEvent; 11 | import org.bukkit.entity.Player; 12 | import org.bukkit.event.EventHandler; 13 | import org.bukkit.event.Listener; 14 | 15 | public class GPClaimCreatedScriptEvent extends BukkitScriptEvent implements Listener { 16 | 17 | // <--[event] 18 | // @Events 19 | // gp claim created 20 | // 21 | // @Cancellable true 22 | // 23 | // @Triggers when a Grief Prevention claim is created. 24 | // 25 | // @Context 26 | // returns the GriefPreventionClaimTag that is being created. 27 | // returns the source of the creation. Can be PLAYER or SERVER. 28 | // 29 | // @Plugin Depenizen, GriefPrevention 30 | // 31 | // @Player when source_type is player. 32 | // 33 | // @Group Depenizen 34 | // 35 | // --> 36 | 37 | public GPClaimCreatedScriptEvent() { 38 | registerCouldMatcher("gp claim created"); 39 | } 40 | 41 | public ClaimCreatedEvent event; 42 | public String sourceType; 43 | 44 | @Override 45 | public ScriptEntryData getScriptEntryData() { 46 | return new BukkitScriptEntryData(event.getCreator() instanceof Player ? PlayerTag.mirrorBukkitPlayer((Player) event.getCreator()) : null, null); 47 | } 48 | 49 | @Override 50 | public ObjectTag getContext(String name) { 51 | return switch (name) { 52 | case "claim" -> new GriefPreventionClaimTag(event.getClaim()); 53 | case "source_type" -> new ElementTag(sourceType); 54 | default -> super.getContext(name); 55 | }; 56 | } 57 | 58 | @EventHandler 59 | public void onClaimCreated(ClaimCreatedEvent event) { 60 | this.event = event; 61 | this.sourceType = event.getCreator() instanceof Player ? "player" : "server"; 62 | fire(event); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/griefprevention/GPClaimDeletedScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.griefprevention; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizencore.objects.ObjectTag; 5 | import com.denizenscript.depenizen.bukkit.objects.griefprevention.GriefPreventionClaimTag; 6 | import me.ryanhamshire.GriefPrevention.events.ClaimDeletedEvent; 7 | import org.bukkit.event.EventHandler; 8 | import org.bukkit.event.Listener; 9 | 10 | public class GPClaimDeletedScriptEvent extends BukkitScriptEvent implements Listener { 11 | 12 | // <--[event] 13 | // @Events 14 | // gp claim deleted 15 | // 16 | // @Triggers when a Grief Prevention claim is deleted. 17 | // 18 | // @Context 19 | // returns the GriefPreventionClaimTag being deleted. 20 | // 21 | // @Plugin Depenizen, GriefPrevention 22 | // 23 | // @Group Depenizen 24 | // 25 | // --> 26 | 27 | public GPClaimDeletedScriptEvent() { 28 | registerCouldMatcher("gp claim deleted"); 29 | } 30 | 31 | public ClaimDeletedEvent event; 32 | 33 | @Override 34 | public ObjectTag getContext(String name) { 35 | return switch (name) { 36 | case "claim" -> new GriefPreventionClaimTag(event.getClaim()); 37 | default -> super.getContext(name); 38 | }; 39 | } 40 | 41 | @EventHandler 42 | public void onClaimDeleted(ClaimDeletedEvent event) { 43 | this.event = event; 44 | fire(event); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/jobs/JobsJobsJoinScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.jobs; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.denizenscript.depenizen.bukkit.objects.jobs.JobsJobTag; 9 | import com.gamingmesh.jobs.api.JobsJoinEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class JobsJobsJoinScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // jobs player joins <'job'> 18 | // 19 | // @Cancellable true 20 | // 21 | // @Triggers when a player joins the specified job. 22 | // 23 | // @Context 24 | // Returns the job that the player is joining. 25 | // 26 | // @Plugin Depenizen, Jobs 27 | // 28 | // @Player Always. 29 | // 30 | // @Group Depenizen 31 | // 32 | // --> 33 | 34 | public JobsJobsJoinScriptEvent() { 35 | registerCouldMatcher("jobs player joins <'job'>"); 36 | } 37 | 38 | public JobsJoinEvent event; 39 | public JobsJobTag job; 40 | 41 | @Override 42 | public boolean matches(ScriptPath path) { 43 | if (!path.tryArgObject(3, job)) { 44 | return false; 45 | } 46 | return super.matches(path); 47 | } 48 | 49 | @Override 50 | public ObjectTag getContext(String name) { 51 | return switch (name) { 52 | case "job" -> job; 53 | default -> super.getContext(name); 54 | }; 55 | } 56 | 57 | @Override 58 | public ScriptEntryData getScriptEntryData() { 59 | return new BukkitScriptEntryData(new PlayerTag(event.getPlayer().getPlayer()), null); 60 | } 61 | 62 | @EventHandler 63 | public void onJobsJobsJoin(JobsJoinEvent event) { 64 | job = new JobsJobTag(event.getJob(), event.getPlayer()); 65 | this.event = event; 66 | fire(event); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/jobs/JobsJobsLeaveScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.jobs; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.denizenscript.depenizen.bukkit.objects.jobs.JobsJobTag; 9 | import com.gamingmesh.jobs.api.JobsLeaveEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class JobsJobsLeaveScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // jobs player leaves <'job'> 18 | // 19 | // @Cancellable true 20 | // 21 | // @Triggers when a player joins the specified job. 22 | // 23 | // @Context 24 | // Returns the job that the player is joining. 25 | // 26 | // @Plugin Depenizen, Jobs 27 | // 28 | // @Player Always. 29 | // 30 | // @Group Depenizen 31 | // 32 | // --> 33 | 34 | public JobsJobsLeaveScriptEvent() { 35 | registerCouldMatcher("jobs player leaves <'job'>"); 36 | } 37 | 38 | public JobsLeaveEvent event; 39 | public JobsJobTag job; 40 | 41 | @Override 42 | public boolean matches(ScriptPath path) { 43 | if (!path.tryArgObject(3, job)) { 44 | return false; 45 | } 46 | return super.matches(path); 47 | } 48 | 49 | @Override 50 | public ObjectTag getContext(String name) { 51 | return switch (name) { 52 | case "job" -> job; 53 | default -> super.getContext(name); 54 | }; 55 | } 56 | 57 | @Override 58 | public ScriptEntryData getScriptEntryData() { 59 | return new BukkitScriptEntryData(new PlayerTag(event.getPlayer().getPlayer()), null); 60 | } 61 | 62 | @EventHandler 63 | public void onJobsJobsLeave(JobsLeaveEvent event) { 64 | job = new JobsJobTag(event.getJob(), event.getPlayer()); 65 | this.event = event; 66 | fire(event); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/jobs/JobsJobsLevelUpScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.jobs; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.denizenscript.depenizen.bukkit.objects.jobs.JobsJobTag; 9 | import com.gamingmesh.jobs.api.JobsLevelUpEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class JobsJobsLevelUpScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // jobs player levels up <'job'> 18 | // 19 | // @Cancellable true 20 | // 21 | // @Triggers when a player levels up in the specified job. 22 | // 23 | // @Context 24 | // Returns the job that the player is levelling up in. 25 | // 26 | // @Plugin Depenizen, Jobs 27 | // 28 | // @Player Always. 29 | // 30 | // @Group Depenizen 31 | // 32 | // --> 33 | 34 | public JobsJobsLevelUpScriptEvent() { 35 | registerCouldMatcher("jobs player levels up <'job'>"); 36 | } 37 | 38 | public JobsLevelUpEvent event; 39 | public JobsJobTag job; 40 | 41 | @Override 42 | public boolean matches(ScriptPath path) { 43 | if (!path.tryArgObject(4, job)) { 44 | return false; 45 | } 46 | return super.matches(path); 47 | } 48 | 49 | @Override 50 | public ObjectTag getContext(String name) { 51 | return switch (name) { 52 | case "job" -> job; 53 | default -> super.getContext(name); 54 | }; 55 | } 56 | 57 | @Override 58 | public ScriptEntryData getScriptEntryData() { 59 | return new BukkitScriptEntryData(new PlayerTag(event.getPlayer().getPlayer()), null); 60 | } 61 | 62 | @EventHandler 63 | public void onJobsJobsLevelUp(JobsLevelUpEvent event) { 64 | job = new JobsJobTag(event.getJob(), event.getPlayer()); 65 | this.event = event; 66 | fire(event); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/libsdisguises/EntityDisguisesScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.libsdisguises; 2 | 3 | import com.denizenscript.depenizen.bukkit.objects.libsdisguises.LibsDisguiseTag; 4 | import me.libraryaddict.disguise.events.DisguiseEvent; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizen.events.BukkitScriptEvent; 7 | import com.denizenscript.denizen.objects.EntityTag; 8 | import com.denizenscript.denizencore.objects.ObjectTag; 9 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class EntityDisguisesScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // libsdisguises disguise|disguises <'disguise'> 18 | // 19 | // @Cancellable true 20 | // 21 | // @Triggers when a entity disguises. 22 | // 23 | // @Context 24 | // returns the entity who disguised. 25 | // returns the disguise in use. 26 | // 27 | // @Plugin Depenizen, LibsDisguises 28 | // 29 | // @Group Depenizen 30 | // 31 | // --> 32 | 33 | public EntityDisguisesScriptEvent() { 34 | registerCouldMatcher("libsdisguises disguise|disguises <'disguise'>"); 35 | } 36 | 37 | 38 | public DisguiseEvent event; 39 | public EntityTag entity; 40 | public LibsDisguiseTag disguise; 41 | 42 | @Override 43 | public boolean matches(ScriptPath path) { 44 | String disguiseName = path.eventArgLowerAt(2); 45 | if (!disguiseName.equals("disguise") && !disguise.equals(LibsDisguiseTag.valueOf(disguiseName, getTagContext(path)))) { 46 | return false; 47 | } 48 | return super.matches(path); 49 | } 50 | 51 | @Override 52 | public ScriptEntryData getScriptEntryData() { 53 | return new BukkitScriptEntryData(null, null); 54 | } 55 | 56 | @Override 57 | public ObjectTag getContext(String name) { 58 | return switch (name) { 59 | case "entity" -> entity; 60 | case "disguise" -> disguise; 61 | default -> super.getContext(name); 62 | }; 63 | } 64 | 65 | @EventHandler 66 | public void onDisguise(DisguiseEvent event) { 67 | disguise = new LibsDisguiseTag(event.getDisguise()); 68 | entity = new EntityTag(event.getEntity()); 69 | this.event = event; 70 | fire(event); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/magicspells/SpellLearnScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.magicspells; 2 | 3 | import com.nisovin.magicspells.events.SpellLearnEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizen.events.BukkitScriptEvent; 6 | import com.denizenscript.denizen.objects.PlayerTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.objects.ObjectTag; 9 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class SpellLearnScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // magicspells player learns spell 18 | // 19 | // @Regex ^on magicspells [^\s]+ learns spell$ 20 | // 21 | // @Triggers when a player is about to learn a spell. 22 | // 23 | // @Cancellable true 24 | // 25 | // @Context 26 | // returns the name of the spell. 27 | // returns the source. Can either be SPELLBOOK, TEACH, TOME or OTHER 28 | // 29 | // @Plugin Depenizen, MagicSpells 30 | // 31 | // @Player Always. 32 | // 33 | // @Group Depenizen 34 | // 35 | // --> 36 | 37 | public SpellLearnScriptEvent() { 38 | } 39 | 40 | 41 | public SpellLearnEvent event; 42 | public PlayerTag player; 43 | private ElementTag source; 44 | private ElementTag spell; 45 | 46 | @Override 47 | public boolean couldMatch(ScriptPath path) { 48 | return path.eventLower.startsWith("magicspells player learns spell"); 49 | } 50 | 51 | @Override 52 | public ScriptEntryData getScriptEntryData() { 53 | return new BukkitScriptEntryData(player, null); 54 | } 55 | 56 | @Override 57 | public ObjectTag getContext(String name) { 58 | return switch (name) { 59 | case "source" -> source; 60 | case "spell_name" -> spell; 61 | default -> super.getContext(name); 62 | }; 63 | } 64 | 65 | @EventHandler 66 | public void onPlayerCastsSpell(SpellLearnEvent event) { 67 | player = PlayerTag.mirrorBukkitPlayer(event.getLearner()); 68 | spell = new ElementTag(event.getSpell().getName()); 69 | source = new ElementTag(event.getSource()); 70 | this.event = event; 71 | fire(event); 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/mobarena/MobArenaStartsScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.mobarena; 2 | 3 | import com.denizenscript.denizencore.utilities.CoreUtilities; 4 | import com.garbagemule.MobArena.events.ArenaStartEvent; 5 | import com.denizenscript.depenizen.bukkit.objects.mobarena.MobArenaArenaTag; 6 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 7 | import com.denizenscript.denizen.events.BukkitScriptEvent; 8 | import com.denizenscript.denizencore.objects.ObjectTag; 9 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class MobArenaStartsScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // mobarena <'arena'> starts 18 | // 19 | // @Cancellable true 20 | // 21 | // @Triggers when a mobarena starts. 22 | // 23 | // @Context 24 | // Returns the arena which started. 25 | // 26 | // @Plugin Depenizen, MobArena 27 | // 28 | // @Group Depenizen 29 | // 30 | // --> 31 | 32 | public MobArenaStartsScriptEvent() { 33 | registerCouldMatcher("mobarena <'arena'> starts"); 34 | } 35 | 36 | public ArenaStartEvent event; 37 | public MobArenaArenaTag arena; 38 | 39 | @Override 40 | public boolean matches(ScriptPath path) { 41 | String arenaname = path.eventArgLowerAt(1); 42 | MobArenaArenaTag a = MobArenaArenaTag.valueOf(arenaname); 43 | if (!arenaname.equals("arena") && (a == null || !CoreUtilities.equalsIgnoreCase(a.getArena().arenaName(), arenaname))) { 44 | return false; 45 | } 46 | return super.matches(path); 47 | } 48 | 49 | @Override 50 | public ScriptEntryData getScriptEntryData() { 51 | return new BukkitScriptEntryData(null, null); 52 | } 53 | 54 | @Override 55 | public ObjectTag getContext(String name) { 56 | return switch (name) { 57 | case "arena" -> arena; 58 | default -> super.getContext(name); 59 | }; 60 | } 61 | 62 | @EventHandler 63 | public void onMobArenaStarts(ArenaStartEvent event) { 64 | arena = new MobArenaArenaTag(event.getArena()); 65 | this.event = event; 66 | fire(event); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/mythicmobs/MythicMobsDespawnEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.mythicmobs; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.EntityTag; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.depenizen.bukkit.objects.mythicmobs.MythicMobsMobTag; 7 | import io.lumine.mythic.bukkit.events.MythicMobDespawnEvent; 8 | import org.bukkit.event.EventHandler; 9 | import org.bukkit.event.Listener; 10 | 11 | 12 | public class MythicMobsDespawnEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // mythicmob <'mob'> despawns 17 | // 18 | // @Location true 19 | // 20 | // @Triggers when a MythicMob despawns. 21 | // 22 | // @Context 23 | // Returns the MythicMob that is despawning. 24 | // Returns the EntityTag for the MythicMob. 25 | // 26 | // @Plugin Depenizen, MythicMobs 27 | // 28 | // @Group Depenizen 29 | // 30 | // --> 31 | 32 | public MythicMobsDespawnEvent() { 33 | registerCouldMatcher("mythicmob <'mob'> despawns"); 34 | } 35 | 36 | public MythicMobDespawnEvent event; 37 | public MythicMobsMobTag mythicmob; 38 | 39 | @Override 40 | public boolean matches(ScriptPath path) { 41 | String mob = path.eventArgLowerAt(1); 42 | if (!mob.equals("mob") && !runGenericCheck(mob, mythicmob.getMobType().getInternalName())) { 43 | return false; 44 | } 45 | return super.matches(path); 46 | } 47 | 48 | @Override 49 | public ObjectTag getContext(String name) { 50 | return switch (name) { 51 | case "mob" -> mythicmob; 52 | case "entity" -> new EntityTag(event.getEntity()); 53 | default -> super.getContext(name); 54 | }; 55 | } 56 | @EventHandler 57 | public void onMythicMobDespawns(MythicMobDespawnEvent event) { 58 | mythicmob = new MythicMobsMobTag(event.getMob()); 59 | this.event = event; 60 | EntityTag.rememberEntity(event.getEntity()); 61 | fire(event); 62 | EntityTag.forgetEntity(event.getEntity()); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/plotsquared/PlotClearScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.plotsquared; 2 | 3 | import com.denizenscript.depenizen.bukkit.objects.plotsquared.PlotSquaredPlotTag; 4 | import com.github.intellectualsites.plotsquared.bukkit.events.PlotClearEvent; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizen.events.BukkitScriptEvent; 7 | import com.denizenscript.denizencore.objects.ObjectTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class PlotClearScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // plotsquared plot clear|clears <'plotsquaredplot'> 17 | // 18 | // @Cancellable true 19 | // 20 | // @Triggers when a plot is cleared. 21 | // 22 | // @Context 23 | // returns the plot that is cleared. 24 | // 25 | // @Plugin Depenizen, PlotSquared 26 | // 27 | // @Group Depenizen 28 | // 29 | // --> 30 | 31 | public PlotClearScriptEvent() { 32 | registerCouldMatcher("plotsquared plot clear|clears <'plotsquaredplot'>"); 33 | } 34 | 35 | public PlotClearEvent event; 36 | public PlotSquaredPlotTag plot; 37 | 38 | @Override 39 | public boolean matches(ScriptPath path) { 40 | String plotName = path.eventArgLowerAt(3); 41 | if (!plotName.equals("plotsquaredplot") && !plot.equals(PlotSquaredPlotTag.valueOf(plotName, getTagContext(path)))) { 42 | return false; 43 | } 44 | return super.matches(path); 45 | } 46 | 47 | @Override 48 | public ScriptEntryData getScriptEntryData() { 49 | return new BukkitScriptEntryData(null, null); 50 | } 51 | 52 | @Override 53 | public ObjectTag getContext(String name) { 54 | if (name.equals("plot")) { 55 | return plot; 56 | } 57 | return super.getContext(name); 58 | } 59 | 60 | @EventHandler 61 | public void onPlotClear(PlotClearEvent event) { 62 | plot = new PlotSquaredPlotTag(event.getPlot()); 63 | this.event = event; 64 | fire(event); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/pvparena/PVPArenaStartsScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.pvparena; 2 | 3 | import com.denizenscript.depenizen.bukkit.objects.pvparena.PVPArenaArenaTag; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizen.events.BukkitScriptEvent; 6 | import com.denizenscript.denizen.objects.PlayerTag; 7 | import com.denizenscript.denizencore.objects.core.ListTag; 8 | import com.denizenscript.denizencore.objects.ObjectTag; 9 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 10 | import net.slipcor.pvparena.arena.ArenaPlayer; 11 | import net.slipcor.pvparena.events.PAStartEvent; 12 | import org.bukkit.event.EventHandler; 13 | import org.bukkit.event.Listener; 14 | 15 | public class PVPArenaStartsScriptEvent extends BukkitScriptEvent implements Listener { 16 | 17 | // <--[event] 18 | // @Events 19 | // pvparena starts 20 | // 21 | // @Regex ^on pvparena starts$ 22 | // 23 | // @Cancellable true 24 | // 25 | // @Triggers when a pvparena starts. 26 | // 27 | // @Context 28 | // returns a list of all fighters in the arena. 29 | // 30 | // @Plugin Depenizen, PVPArena 31 | // 32 | // @Group Depenizen 33 | // 34 | // --> 35 | 36 | public PAStartEvent event; 37 | public ListTag fighters; 38 | public PVPArenaArenaTag arena; 39 | 40 | public PVPArenaStartsScriptEvent() { 41 | } 42 | 43 | @Override 44 | public boolean couldMatch(ScriptPath path) { 45 | return path.eventLower.startsWith("pvparena starts"); 46 | } 47 | 48 | @Override 49 | public ScriptEntryData getScriptEntryData() { 50 | return new BukkitScriptEntryData(null, null); 51 | } 52 | 53 | @Override 54 | public ObjectTag getContext(String name) { 55 | if (name.equals("fighters")) { 56 | return fighters; 57 | } 58 | else if (name.equals("arena")) { 59 | return arena; 60 | } 61 | return super.getContext(name); 62 | } 63 | 64 | @EventHandler 65 | public void onPVPArenaStart(PAStartEvent event) { 66 | fighters = new ListTag(); 67 | for (ArenaPlayer p : event.getArena().getFighters()) { 68 | fighters.addObject(new PlayerTag(p.get())); 69 | } 70 | arena = new PVPArenaArenaTag(event.getArena()); 71 | this.event = event; 72 | fire(event); 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/pvparena/PlayerExitsPVPArenaScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.pvparena; 2 | 3 | import com.denizenscript.depenizen.bukkit.objects.pvparena.PVPArenaArenaTag; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizen.events.BukkitScriptEvent; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import net.slipcor.pvparena.events.PAExitEvent; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class PlayerExitsPVPArenaScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // pvparena player exits 17 | // 18 | // @Regex ^on pvparena player exits$ 19 | // 20 | // @Triggers when a player exit a pvparena (won, loose, leave, disconnect etc.) 21 | // 22 | // @Context 23 | // returns the arena denizen object. 24 | // 25 | // @Plugin Depenizen, PVPArena 26 | // 27 | // @Player Always. 28 | // 29 | // @Group Depenizen 30 | // 31 | // --> 32 | 33 | public PAExitEvent event; 34 | public PVPArenaArenaTag arena; 35 | 36 | public PlayerExitsPVPArenaScriptEvent() { 37 | } 38 | 39 | @Override 40 | public boolean couldMatch(ScriptPath path) { 41 | return path.eventLower.startsWith("pvparena player exits"); 42 | } 43 | 44 | @Override 45 | public ScriptEntryData getScriptEntryData() { 46 | return new BukkitScriptEntryData(event.getPlayer()); 47 | } 48 | 49 | @Override 50 | public ObjectTag getContext(String name) { 51 | if (name.equals("arena")) { 52 | return arena; 53 | } 54 | return super.getContext(name); 55 | } 56 | 57 | @EventHandler 58 | public void onPlayerExitsPVPArena(PAExitEvent event) { 59 | arena = new PVPArenaArenaTag(event.getArena()); 60 | this.event = event; 61 | fire(event); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/pvparena/PlayerJoinsPVPArenaScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.pvparena; 2 | 3 | import com.denizenscript.depenizen.bukkit.objects.pvparena.PVPArenaArenaTag; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizen.events.BukkitScriptEvent; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import net.slipcor.pvparena.events.PAJoinEvent; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class PlayerJoinsPVPArenaScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // pvparena player joins 17 | // 18 | // @Regex ^on pvparena player joins$ 19 | // 20 | // @Cancellable true 21 | // 22 | // @Triggers when a player joins a pvparena. 23 | // 24 | // @Context 25 | // returns the arena denizen object. 26 | // 27 | // @Plugin Depenizen, PVPArena 28 | // 29 | // @Player Always. 30 | // 31 | // @Group Depenizen 32 | // 33 | // --> 34 | 35 | public PAJoinEvent event; 36 | public PVPArenaArenaTag arena; 37 | 38 | public PlayerJoinsPVPArenaScriptEvent() { 39 | } 40 | 41 | @Override 42 | public boolean couldMatch(ScriptPath path) { 43 | return path.eventLower.startsWith("pvparena player joins"); 44 | } 45 | 46 | @Override 47 | public ScriptEntryData getScriptEntryData() { 48 | return new BukkitScriptEntryData(event.getPlayer()); 49 | } 50 | 51 | @Override 52 | public ObjectTag getContext(String name) { 53 | if (name.equals("arena")) { 54 | return arena; 55 | } 56 | return super.getContext(name); 57 | } 58 | 59 | @EventHandler 60 | public void onPlayerJoinsPVPArena(PAJoinEvent event) { 61 | arena = new PVPArenaArenaTag(event.getArena()); 62 | this.event = event; 63 | fire(event); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/pvparena/PlayerLeavesPVPArenaScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.pvparena; 2 | 3 | import com.denizenscript.depenizen.bukkit.objects.pvparena.PVPArenaArenaTag; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizen.events.BukkitScriptEvent; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import net.slipcor.pvparena.events.PALeaveEvent; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class PlayerLeavesPVPArenaScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // pvparena player leaves 17 | // 18 | // @Regex ^on pvparena player leaves$ 19 | // 20 | // @Triggers when a player leaves a pvparena. 21 | // 22 | // @Context 23 | // returns the arena denizen object. 24 | // 25 | // @Plugin Depenizen, PVPArena 26 | // 27 | // @Player Always. 28 | // 29 | // @Group Depenizen 30 | // 31 | // --> 32 | 33 | public PALeaveEvent event; 34 | public PVPArenaArenaTag arena; 35 | 36 | public PlayerLeavesPVPArenaScriptEvent() { 37 | } 38 | 39 | @Override 40 | public boolean couldMatch(ScriptPath path) { 41 | return path.eventLower.startsWith("pvparena player leaves"); 42 | } 43 | 44 | @Override 45 | public ScriptEntryData getScriptEntryData() { 46 | return new BukkitScriptEntryData(event.getPlayer()); 47 | } 48 | 49 | @Override 50 | public ObjectTag getContext(String name) { 51 | if (name.equals("arena")) { 52 | return arena; 53 | } 54 | return super.getContext(name); 55 | } 56 | 57 | @EventHandler 58 | public void onPlayerLeavesPVPArena(PALeaveEvent event) { 59 | arena = new PVPArenaArenaTag(event.getArena()); 60 | this.event = event; 61 | fire(event); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/quests/PlayerCompletesQuestScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.quests; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import com.denizenscript.denizencore.utilities.CoreUtilities; 10 | import me.pikamug.quests.events.quester.BukkitQuesterPreCompleteQuestEvent; 11 | import org.bukkit.event.EventHandler; 12 | import org.bukkit.event.Listener; 13 | 14 | public class PlayerCompletesQuestScriptEvent extends BukkitScriptEvent implements Listener { 15 | 16 | // <--[event] 17 | // @Events 18 | // quests player completes <'quest'> 19 | // 20 | // @Cancellable true 21 | // 22 | // @Triggers when a player completes a quest from the Quests plugin. 23 | // 24 | // @Context 25 | // returns the ID of the quest. 26 | // 27 | // @Plugin Depenizen, Quests 28 | // 29 | // @Player Always. 30 | // 31 | // @Group Depenizen 32 | // 33 | // --> 34 | 35 | public PlayerCompletesQuestScriptEvent() { 36 | registerCouldMatcher("quests player completes <'quest'>"); 37 | } 38 | 39 | public BukkitQuesterPreCompleteQuestEvent event; 40 | 41 | @Override 42 | public boolean matches(ScriptPath path) { 43 | String questName = path.eventArgLowerAt(3); 44 | if (!questName.equals("quest") && !questName.equals(CoreUtilities.toLowerCase(event.getQuest().getId()))) { 45 | return false; 46 | } 47 | 48 | return super.matches(path); 49 | } 50 | 51 | @Override 52 | public ScriptEntryData getScriptEntryData() { 53 | return new BukkitScriptEntryData(new PlayerTag(event.getQuester().getOfflinePlayer()), null); 54 | } 55 | 56 | @Override 57 | public ObjectTag getContext(String name) { 58 | if (name.equals("quest")) { 59 | return new ElementTag(event.getQuest().getId()); 60 | } 61 | return super.getContext(name); 62 | } 63 | 64 | @EventHandler 65 | public void onQuestEvent(BukkitQuesterPreCompleteQuestEvent event) { 66 | this.event = event; 67 | fire(event); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/quests/PlayerFailsQuestScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.quests; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import com.denizenscript.denizencore.utilities.CoreUtilities; 10 | import me.pikamug.quests.events.quester.BukkitQuesterPreFailQuestEvent; 11 | import org.bukkit.event.EventHandler; 12 | import org.bukkit.event.Listener; 13 | 14 | public class PlayerFailsQuestScriptEvent extends BukkitScriptEvent implements Listener { 15 | 16 | // <--[event] 17 | // @Events 18 | // quests player fails <'quest'> 19 | // 20 | // @Cancellable true 21 | // 22 | // @Triggers when a player fails a quest from the Quests plugin. 23 | // 24 | // @Context 25 | // returns the ID of the quest. 26 | // 27 | // @Plugin Depenizen, Quests 28 | // 29 | // @Player Always. 30 | // 31 | // @Group Depenizen 32 | // 33 | // --> 34 | 35 | public PlayerFailsQuestScriptEvent() { 36 | registerCouldMatcher("quests player fails <'quest'>"); 37 | } 38 | 39 | public BukkitQuesterPreFailQuestEvent event; 40 | 41 | @Override 42 | public boolean matches(ScriptPath path) { 43 | String questName = path.eventArgLowerAt(3); 44 | if (!questName.equals("quest") && !questName.equals(CoreUtilities.toLowerCase(event.getQuest().getId()))) { 45 | return false; 46 | } 47 | 48 | return super.matches(path); 49 | } 50 | 51 | @Override 52 | public ScriptEntryData getScriptEntryData() { 53 | return new BukkitScriptEntryData(new PlayerTag(event.getQuester().getOfflinePlayer()), null); 54 | } 55 | 56 | @Override 57 | public ObjectTag getContext(String name) { 58 | if (name.equals("quest")) { 59 | return new ElementTag(event.getQuest().getId()); 60 | } 61 | return super.getContext(name); 62 | } 63 | 64 | @EventHandler 65 | public void onQuestEvent(BukkitQuesterPreFailQuestEvent event) { 66 | this.event = event; 67 | fire(event); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/quests/PlayerQuestStageChangeScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.quests; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import com.denizenscript.denizencore.utilities.CoreUtilities; 10 | import me.pikamug.quests.events.quester.BukkitQuesterPostChangeStageEvent; 11 | import org.bukkit.event.EventHandler; 12 | import org.bukkit.event.Listener; 13 | 14 | public class PlayerQuestStageChangeScriptEvent extends BukkitScriptEvent implements Listener { 15 | 16 | // <--[event] 17 | // @Events 18 | // quests player changes <'quest'> stage 19 | // 20 | // @Cancellable true 21 | // 22 | // @Triggers when a player changes stage in a quest from the Quests plugin. Note that stages don't have unique IDs. 23 | // 24 | // @Context 25 | // returns the ID of the quest. 26 | // 27 | // @Plugin Depenizen, Quests 28 | // 29 | // @Player Always. 30 | // 31 | // @Group Depenizen 32 | // 33 | // --> 34 | 35 | public PlayerQuestStageChangeScriptEvent() { 36 | registerCouldMatcher("quests player changes <'quest'> stage"); 37 | } 38 | 39 | public BukkitQuesterPostChangeStageEvent event; 40 | 41 | @Override 42 | public boolean matches(ScriptPath path) { 43 | String questName = path.eventArgLowerAt(3); 44 | if (!questName.equals("quest") && !questName.equals(CoreUtilities.toLowerCase(event.getQuest().getId()))) { 45 | return false; 46 | } 47 | 48 | return super.matches(path); 49 | } 50 | 51 | @Override 52 | public ScriptEntryData getScriptEntryData() { 53 | return new BukkitScriptEntryData(new PlayerTag(event.getQuester().getOfflinePlayer()), null); 54 | } 55 | 56 | @Override 57 | public ObjectTag getContext(String name) { 58 | if (name.equals("quest")) { 59 | return new ElementTag(event.getQuest().getId()); 60 | } 61 | return super.getContext(name); 62 | } 63 | 64 | @EventHandler 65 | public void onQuestEvent(BukkitQuesterPostChangeStageEvent event) { 66 | this.event = event; 67 | fire(event); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/quests/PlayerStartsQuestScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.quests; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import com.denizenscript.denizencore.utilities.CoreUtilities; 10 | import me.pikamug.quests.events.quester.BukkitQuesterPreStartQuestEvent; 11 | import org.bukkit.event.EventHandler; 12 | import org.bukkit.event.Listener; 13 | 14 | public class PlayerStartsQuestScriptEvent extends BukkitScriptEvent implements Listener { 15 | 16 | // <--[event] 17 | // @Events 18 | // quests player starts <'quest'> 19 | // 20 | // @Cancellable true 21 | // 22 | // @Triggers when a player starts a quest from the Quests plugin. 23 | // 24 | // @Context 25 | // returns the ID of the quest. 26 | // 27 | // @Plugin Depenizen, Quests 28 | // 29 | // @Player Always. 30 | // 31 | // @Group Depenizen 32 | // 33 | // --> 34 | 35 | public PlayerStartsQuestScriptEvent() { 36 | registerCouldMatcher("quests player starts <'quest'>"); 37 | } 38 | 39 | public BukkitQuesterPreStartQuestEvent event; 40 | 41 | @Override 42 | public boolean matches(ScriptPath path) { 43 | String questName = path.eventArgLowerAt(3); 44 | if (!questName.equals("quest") && !questName.equals(CoreUtilities.toLowerCase(event.getQuest().getId()))) { 45 | return false; 46 | } 47 | return super.matches(path); 48 | } 49 | 50 | @Override 51 | public ScriptEntryData getScriptEntryData() { 52 | return new BukkitScriptEntryData(new PlayerTag(event.getQuester().getOfflinePlayer()), null); 53 | } 54 | 55 | @Override 56 | public ObjectTag getContext(String name) { 57 | if (name.equals("quest")) { 58 | return new ElementTag(event.getQuest().getId()); 59 | } 60 | return super.getContext(name); 61 | } 62 | 63 | @EventHandler 64 | public void onQuestEvent(BukkitQuesterPreStartQuestEvent event) { 65 | this.event = event; 66 | fire(event); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/residence/PlayerCreatesResidenceScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.residence; 2 | 3 | import com.bekvon.bukkit.residence.event.ResidenceCreationEvent; 4 | import com.denizenscript.denizencore.objects.ObjectTag; 5 | import com.denizenscript.depenizen.bukkit.objects.residence.ResidenceTag; 6 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 7 | import com.denizenscript.denizen.events.BukkitScriptEvent; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class PlayerCreatesResidenceScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // residence player creates residence 17 | // 18 | // @Cancellable true 19 | // 20 | // @Triggers when a player creates a Residence. 21 | // 22 | // @Context 23 | // Returns the created ResidenceTag. 24 | // 25 | // @Plugin Depenizen, Residence 26 | // 27 | // @Player Always. 28 | // 29 | // @Group Depenizen 30 | // 31 | // --> 32 | 33 | public PlayerCreatesResidenceScriptEvent() { 34 | registerCouldMatcher("residence player creates residence"); 35 | } 36 | 37 | public ResidenceCreationEvent event; 38 | 39 | @Override 40 | public ScriptEntryData getScriptEntryData() { 41 | return new BukkitScriptEntryData(event.getPlayer()); 42 | } 43 | 44 | @Override 45 | public ObjectTag getContext(String name) { 46 | switch (name) { 47 | case "residence": return new ResidenceTag(event.getResidence()); 48 | } 49 | return super.getContext(name); 50 | } 51 | 52 | @EventHandler 53 | public void onResidencePlayerCreatesResidence(ResidenceCreationEvent event) { 54 | this.event = event; 55 | fire(event); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/residence/PlayerEntersResidenceScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.residence; 2 | 3 | import com.bekvon.bukkit.residence.event.ResidenceChangedEvent; 4 | import com.denizenscript.depenizen.bukkit.objects.residence.ResidenceTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizen.events.BukkitScriptEvent; 7 | import com.denizenscript.denizencore.objects.ObjectTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class PlayerEntersResidenceScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // residence player enters <'residence'> 17 | // 18 | // @Triggers when a player enters a Residence. 19 | // 20 | // @Context 21 | // Returns the Residence the player entered. 22 | // 23 | // @Plugin Depenizen, Residence 24 | // 25 | // @Player Always. 26 | // 27 | // @Group Depenizen 28 | // 29 | // --> 30 | 31 | public PlayerEntersResidenceScriptEvent() { 32 | registerCouldMatcher("residence player enters <'residence'>"); 33 | } 34 | 35 | public ResidenceChangedEvent event; 36 | public ResidenceTag residence; 37 | 38 | @Override 39 | public boolean matches(ScriptPath path) { 40 | if (!path.tryArgObject(3, residence)) { 41 | return false; 42 | } 43 | return super.matches(path); 44 | } 45 | 46 | @Override 47 | public ScriptEntryData getScriptEntryData() { 48 | return new BukkitScriptEntryData(event.getPlayer()); 49 | } 50 | 51 | @Override 52 | public ObjectTag getContext(String name) { 53 | switch (name) { 54 | case "residence": return residence; 55 | } 56 | return super.getContext(name); 57 | } 58 | 59 | @EventHandler 60 | public void onResidencePlayerEntersResidence(ResidenceChangedEvent event) { 61 | if (event.getTo() == null) { 62 | return; 63 | } 64 | residence = new ResidenceTag(event.getTo()); 65 | this.event = event; 66 | fire(event); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/residence/PlayerExitsResidenceScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.residence; 2 | 3 | import com.bekvon.bukkit.residence.event.ResidenceChangedEvent; 4 | import com.denizenscript.depenizen.bukkit.objects.residence.ResidenceTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizen.events.BukkitScriptEvent; 7 | import com.denizenscript.denizencore.objects.ObjectTag; 8 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class PlayerExitsResidenceScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // residence player exits <'residence'> 17 | // 18 | // @Triggers when a player exits a Residence. 19 | // 20 | // @Context 21 | // Returns the Residence the player exited. 22 | // 23 | // @Plugin Depenizen, Residence 24 | // 25 | // @Player Always. 26 | // 27 | // @Group Depenizen 28 | // 29 | // --> 30 | 31 | public PlayerExitsResidenceScriptEvent() { 32 | registerCouldMatcher("residence player exits <'residence'>"); 33 | } 34 | 35 | public ResidenceChangedEvent event; 36 | public ResidenceTag residence; 37 | 38 | @Override 39 | public boolean matches(ScriptPath path) { 40 | if (!path.tryArgObject(3, residence)) { 41 | return false; 42 | } 43 | return super.matches(path); 44 | } 45 | 46 | @Override 47 | public ScriptEntryData getScriptEntryData() { 48 | return new BukkitScriptEntryData(event.getPlayer()); 49 | } 50 | 51 | @Override 52 | public ObjectTag getContext(String name) { 53 | switch (name) { 54 | case "residence": return residence; 55 | } 56 | return super.getContext(name); 57 | } 58 | 59 | @EventHandler 60 | public void onResidencePlayerExitsResidence(ResidenceChangedEvent event) { 61 | if (event.getFrom() == null) { 62 | return; 63 | } 64 | residence = new ResidenceTag(event.getFrom()); 65 | this.event = event; 66 | fire(event); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/residence/ResidenceRaidEndsScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.residence; 2 | 3 | import com.bekvon.bukkit.residence.event.ResidenceRaidEndEvent; 4 | import com.denizenscript.denizencore.objects.ObjectTag; 5 | import com.denizenscript.depenizen.bukkit.objects.residence.ResidenceTag; 6 | import com.denizenscript.denizen.events.BukkitScriptEvent; 7 | import org.bukkit.event.EventHandler; 8 | import org.bukkit.event.Listener; 9 | 10 | 11 | public class ResidenceRaidEndsScriptEvent extends BukkitScriptEvent implements Listener { 12 | 13 | // <--[event] 14 | // @Events 15 | // residence raid ends 16 | // 17 | // @Switch residence: to only process the event if the residence matches the input. 18 | // 19 | // @Triggers when a Residence raid ends. 20 | // 21 | // @Context 22 | // Returns a ResidenceTag of the residence that was being raided. 23 | // 24 | // @Plugin Depenizen, Residence 25 | // 26 | // @Group Depenizen 27 | // 28 | // --> 29 | 30 | public ResidenceRaidEndsScriptEvent() { 31 | registerCouldMatcher("residence raid ends"); 32 | registerSwitches("residence"); 33 | } 34 | 35 | public ResidenceRaidEndEvent event; 36 | public ResidenceTag residence; 37 | 38 | @Override 39 | public boolean matches(ScriptPath path) { 40 | if (!path.tryObjectSwitch("residence", residence)) { 41 | return false; 42 | } 43 | return super.matches(path); 44 | } 45 | 46 | @Override 47 | public ObjectTag getContext(String name) { 48 | switch (name) { 49 | case "residence": return residence; 50 | } 51 | return super.getContext(name); 52 | } 53 | 54 | @EventHandler 55 | public void onResidenceRaidEndsScriptEvent(ResidenceRaidEndEvent event) { 56 | this.event = event; 57 | residence = new ResidenceTag(event.getRes()); 58 | fire(event); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/sentinel/SentinelNoMoreTargetsScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.sentinel; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.NPCTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 7 | import org.bukkit.event.EventHandler; 8 | import org.bukkit.event.Listener; 9 | import org.mcmonkey.sentinel.events.SentinelNoMoreTargetsEvent; 10 | 11 | public class SentinelNoMoreTargetsScriptEvent extends BukkitScriptEvent implements Listener { 12 | 13 | // <--[event] 14 | // @Events 15 | // sentinel npc has no more targets 16 | // 17 | // @Regex ^on sentinel npc has no more targets$ 18 | // 19 | // @Triggers when a Sentinel-powered NPC has no more targets to fight and can return to normal idle behavior. 20 | // 21 | // @Plugin Depenizen, Sentinel 22 | // 23 | // @NPC Always. 24 | // 25 | // @Group Depenizen 26 | // 27 | // --> 28 | 29 | public SentinelNoMoreTargetsScriptEvent() { 30 | } 31 | 32 | public SentinelNoMoreTargetsEvent event; 33 | public NPCTag npc; 34 | 35 | @Override 36 | public boolean couldMatch(ScriptPath path) { 37 | return path.eventLower.startsWith("sentinel npc has no more targets"); 38 | } 39 | 40 | @Override 41 | public ScriptEntryData getScriptEntryData() { 42 | return new BukkitScriptEntryData(null, npc); 43 | } 44 | 45 | @EventHandler 46 | public void onSentinelAttack(SentinelNoMoreTargetsEvent event) { 47 | npc = new NPCTag(event.getNPC()); 48 | this.event = event; 49 | fire(event); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/shopkeepers/ShopKeeperCreatedScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.shopkeepers; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.LocationTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.nisovin.shopkeepers.api.events.PlayerCreateShopkeeperEvent; 9 | import org.bukkit.event.EventHandler; 10 | import org.bukkit.event.Listener; 11 | 12 | public class ShopKeeperCreatedScriptEvent extends BukkitScriptEvent implements Listener { 13 | 14 | // <--[event] 15 | // @Events 16 | // player creates shopkeeper 17 | // 18 | // @Cancellable true 19 | // 20 | // @Triggers when a player creates a shopkeeper. 21 | // 22 | // @Context 23 | // Returns the LocationTag of the shopkeeper being created. 24 | // 25 | // @Plugin Depenizen, ShopKeepers 26 | // 27 | // @Player Always. 28 | // 29 | // @Group Depenizen 30 | // 31 | // --> 32 | 33 | public ShopKeeperCreatedScriptEvent() { 34 | registerCouldMatcher("player creates shopkeeper"); 35 | } 36 | 37 | public PlayerCreateShopkeeperEvent event; 38 | 39 | @Override 40 | public ScriptEntryData getScriptEntryData() { 41 | return new BukkitScriptEntryData(event.getShopCreationData().getCreator()); 42 | } 43 | 44 | @Override 45 | public ObjectTag getContext(String name) { 46 | return switch (name) { 47 | case "location" -> new LocationTag(event.getShopCreationData().getSpawnLocation()); 48 | default -> super.getContext(name); 49 | }; 50 | } 51 | 52 | @EventHandler 53 | public void onPlayerCreateShopkeeper(PlayerCreateShopkeeperEvent event) { 54 | this.event = event; 55 | fire(event); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/shopkeepers/ShopKeeperTradeCompletedScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.shopkeepers; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 7 | import com.denizenscript.depenizen.bukkit.bridges.ShopkeepersBridge; 8 | import com.denizenscript.depenizen.bukkit.objects.shopkeepers.ShopKeeperTag; 9 | import com.nisovin.shopkeepers.api.events.ShopkeeperTradeCompletedEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class ShopKeeperTradeCompletedScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // shopkeeper trade 18 | // 19 | // @Triggers when a trade with a shopkeeper is completed. 20 | // If you intend to cancel this event, use <@link event ShopKeeperTradeInitiatedScriptEvent> instead. 21 | // 22 | // @Context 23 | // Returns a ListTag(ItemTag) of the trade in the form Offered|Offered|Result. 24 | // Returns the ShopKeeperTag of the ShopKeeper that the trade occurred with. 25 | // 26 | // @Plugin Depenizen, ShopKeepers 27 | // 28 | // @Player Always. 29 | // 30 | // @Group Depenizen 31 | // 32 | // --> 33 | 34 | public ShopKeeperTradeCompletedScriptEvent() { 35 | registerCouldMatcher("shopkeeper trade"); 36 | } 37 | 38 | public ShopkeeperTradeCompletedEvent event; 39 | 40 | @Override 41 | public ScriptEntryData getScriptEntryData() { 42 | return new BukkitScriptEntryData(event.getCompletedTrade().getPlayer()); 43 | } 44 | 45 | @Override 46 | public ObjectTag getContext(String name) { 47 | return switch (name) { 48 | case "recipe" -> ShopkeepersBridge.tradingRecipeToList(event.getCompletedTrade().getTradingRecipe()); 49 | case "shopkeeper" -> new ShopKeeperTag(event.getShopkeeper()); 50 | default -> super.getContext(name); 51 | }; 52 | } 53 | 54 | @EventHandler 55 | public void onShopKeeperTradeCompleted(ShopkeeperTradeCompletedEvent event) { 56 | this.event = event; 57 | fire(event); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/shopkeepers/ShopKeeperTradeInitiatedScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.shopkeepers; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 7 | import com.denizenscript.depenizen.bukkit.bridges.ShopkeepersBridge; 8 | import com.denizenscript.depenizen.bukkit.objects.shopkeepers.ShopKeeperTag; 9 | import com.nisovin.shopkeepers.api.events.ShopkeeperTradeEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class ShopKeeperTradeInitiatedScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // shopkeepers player tries trading 18 | // 19 | // @Warning This event is called for each successful trade option a ShopKeeper offers. Canceling a trade will also cancel all successive trades that might otherwise have been triggered. 20 | // 21 | // @Cancellable true 22 | // 23 | // @Triggers when a trade with a shopkeeper is initiated. 24 | // 25 | // @Context 26 | // Returns a ListTag(ItemTag) of the trade in the form Offered|Offered|Result. 27 | // Returns the ShopKeeperTag of the ShopKeeper that the trade occurs with. 28 | // 29 | // @Plugin Depenizen, ShopKeepers 30 | // 31 | // @Player Always. 32 | // 33 | // @Group Depenizen 34 | // 35 | // --> 36 | 37 | public ShopKeeperTradeInitiatedScriptEvent() { 38 | registerCouldMatcher("shopkeepers player tries trading"); 39 | } 40 | 41 | public ShopkeeperTradeEvent event; 42 | 43 | @Override 44 | public ScriptEntryData getScriptEntryData() { 45 | return new BukkitScriptEntryData(event.getPlayer()); 46 | } 47 | 48 | @Override 49 | public ObjectTag getContext(String name) { 50 | return switch (name) { 51 | case "recipe" -> ShopkeepersBridge.tradingRecipeToList(event.getTradingRecipe()); 52 | case "shopkeeper" -> new ShopKeeperTag(event.getShopkeeper()); 53 | default -> super.getContext(name); 54 | }; 55 | } 56 | 57 | @EventHandler 58 | public void onShopKeeperTrade(ShopkeeperTradeEvent event) { 59 | this.event = event; 60 | fire(event); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/towny/PlayerEntersTownScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.towny; 2 | 3 | import com.denizenscript.depenizen.bukkit.objects.towny.TownTag; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizen.events.BukkitScriptEvent; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.palmergames.bukkit.towny.event.player.PlayerEntersIntoTownBorderEvent; 9 | import com.palmergames.bukkit.towny.object.TownyWorld; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class PlayerEntersTownScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // towny player enters <'town'> 18 | // 19 | // @Triggers when a player enters a Towny Town. 20 | // 21 | // @Context 22 | // Returns the town the player entered. 23 | // 24 | // @Plugin Depenizen, Towny 25 | // 26 | // @Player Always. 27 | // 28 | // @Group Depenizen 29 | // 30 | // --> 31 | 32 | public PlayerEntersTownScriptEvent() { 33 | registerCouldMatcher("towny player enters <'town'>"); 34 | } 35 | 36 | public PlayerEntersIntoTownBorderEvent event; 37 | public TownTag town; 38 | 39 | @Override 40 | public boolean matches(ScriptPath path) { 41 | String name = path.eventArgAt(3); 42 | if (!name.equals("town") && !town.equals(TownTag.valueOf(name, getTagContext(path)))) { 43 | return false; 44 | } 45 | return super.matches(path); 46 | } 47 | 48 | @Override 49 | public ScriptEntryData getScriptEntryData() { 50 | return new BukkitScriptEntryData(event.getPlayer()); 51 | } 52 | 53 | @Override 54 | public ObjectTag getContext(String name) { 55 | if (name.equals("town")) { 56 | return town; 57 | } 58 | return super.getContext(name); 59 | } 60 | 61 | @EventHandler 62 | public void onTownyPlayerEntersTown(PlayerEntersIntoTownBorderEvent event) { 63 | TownyWorld world = event.getTo().getTownyWorld(); 64 | if (world == null || !world.isUsingTowny()) { 65 | return; 66 | } 67 | town = TownTag.fromWorldCoord(event.getTo()); 68 | this.event = event; 69 | fire(event); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/towny/PlayerExitsTownScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.towny; 2 | 3 | import com.denizenscript.depenizen.bukkit.objects.towny.TownTag; 4 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 5 | import com.denizenscript.denizen.events.BukkitScriptEvent; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.palmergames.bukkit.towny.event.player.PlayerExitsFromTownBorderEvent; 9 | import com.palmergames.bukkit.towny.object.TownyWorld; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class PlayerExitsTownScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // towny player exits <'town'> 18 | // 19 | // @Triggers when a player exits a Towny Town. 20 | // 21 | // @Context 22 | // Returns the town the player exited. 23 | // 24 | // @Plugin Depenizen, Towny 25 | // 26 | // @Player Always. 27 | // 28 | // @Group Depenizen 29 | // 30 | // --> 31 | 32 | public PlayerExitsTownScriptEvent() { 33 | registerCouldMatcher("towny player exits <'town'>"); 34 | } 35 | 36 | public PlayerExitsFromTownBorderEvent event; 37 | public TownTag town; 38 | 39 | @Override 40 | public boolean matches(ScriptPath path) { 41 | String name = path.eventArgLowerAt(3); 42 | if (!name.equals("town") && !town.equals(TownTag.valueOf(name, getTagContext(path)))) { 43 | return false; 44 | } 45 | return super.matches(path); 46 | } 47 | 48 | @Override 49 | public ScriptEntryData getScriptEntryData() { 50 | return new BukkitScriptEntryData(event.getPlayer()); 51 | } 52 | 53 | @Override 54 | public ObjectTag getContext(String name) { 55 | if (name.equals("town")) { 56 | return town; 57 | } 58 | return super.getContext(name); 59 | } 60 | 61 | @EventHandler 62 | public void onTownyPlayerExitsTown(PlayerExitsFromTownBorderEvent event) { 63 | TownyWorld world = event.getTo().getTownyWorld(); 64 | if (world == null || !world.isUsingTowny()) { 65 | return; 66 | } 67 | town = TownTag.fromWorldCoord(event.getFrom()); 68 | if (town == null) { 69 | return; 70 | } 71 | this.event = event; 72 | fire(event); 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/towny/PlayerJoinsTownScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.towny; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.denizenscript.depenizen.bukkit.objects.towny.TownTag; 9 | import com.palmergames.bukkit.towny.event.TownAddResidentEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class PlayerJoinsTownScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // towny player joins town 18 | // 19 | // @Triggers when a player joins a Towny town. 20 | // 21 | // @Context 22 | // returns the TownTag that the player is joining. 23 | // 24 | // @Plugin Depenizen, Towny 25 | // 26 | // @Player Always. 27 | // 28 | // @Group Depenizen 29 | // 30 | // --> 31 | 32 | public PlayerJoinsTownScriptEvent() { 33 | registerCouldMatcher("towny player joins town"); 34 | } 35 | 36 | public TownAddResidentEvent event; 37 | 38 | @Override 39 | public ScriptEntryData getScriptEntryData() { 40 | return new BukkitScriptEntryData(new PlayerTag(event.getResident().getUUID()), null); 41 | } 42 | 43 | @Override 44 | public ObjectTag getContext(String name) { 45 | switch (name) { 46 | case "town": return new TownTag(event.getTown()); 47 | } 48 | return super.getContext(name); 49 | } 50 | 51 | @EventHandler 52 | public void onPlayerJoinTown(TownAddResidentEvent event) { 53 | this.event = event; 54 | fire(event); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/towny/PlayerLeavesTownScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.towny; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizen.objects.PlayerTag; 5 | import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData; 6 | import com.denizenscript.denizencore.objects.ObjectTag; 7 | import com.denizenscript.denizencore.scripts.ScriptEntryData; 8 | import com.denizenscript.depenizen.bukkit.objects.towny.TownTag; 9 | import com.palmergames.bukkit.towny.event.TownRemoveResidentEvent; 10 | import org.bukkit.event.EventHandler; 11 | import org.bukkit.event.Listener; 12 | 13 | public class PlayerLeavesTownScriptEvent extends BukkitScriptEvent implements Listener { 14 | 15 | // <--[event] 16 | // @Events 17 | // towny player leaves town 18 | // 19 | // @Triggers when a player is removed from a Towny town or when a Towny town is dissolved. 20 | // 21 | // @Context 22 | // returns the TownTag that player is leaving. 23 | // 24 | // @Plugin Depenizen, Towny 25 | // 26 | // @Player Always. 27 | // 28 | // @Group Depenizen 29 | // 30 | // --> 31 | 32 | public PlayerLeavesTownScriptEvent() { 33 | registerCouldMatcher("towny player leaves town"); 34 | } 35 | 36 | public TownRemoveResidentEvent event; 37 | 38 | @Override 39 | public ScriptEntryData getScriptEntryData() { 40 | return new BukkitScriptEntryData(new PlayerTag(event.getResident().getUUID()), null); 41 | } 42 | 43 | @Override 44 | public ObjectTag getContext(String name) { 45 | switch (name) { 46 | case "town": return new TownTag(event.getTown()); 47 | } 48 | return super.getContext(name); 49 | } 50 | 51 | @EventHandler 52 | public void onPlayerJoinTown(TownRemoveResidentEvent event) { 53 | this.event = event; 54 | fire(event); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/events/towny/TownCreatedScriptEvent.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.events.towny; 2 | 3 | import com.denizenscript.denizen.events.BukkitScriptEvent; 4 | import com.denizenscript.denizencore.objects.ObjectTag; 5 | import com.denizenscript.depenizen.bukkit.objects.towny.TownTag; 6 | import com.palmergames.bukkit.towny.event.NewTownEvent; 7 | import org.bukkit.event.EventHandler; 8 | import org.bukkit.event.Listener; 9 | 10 | public class TownCreatedScriptEvent extends BukkitScriptEvent implements Listener { 11 | 12 | // <--[event] 13 | // @Events 14 | // towny town created 15 | // 16 | // @Triggers after all checks are complete and a Towny town is fully created. 17 | // 18 | // @Context 19 | // Returns the town that was created. 20 | // 21 | // @Plugin Depenizen, Towny 22 | // 23 | // @Group Depenizen 24 | // 25 | // --> 26 | 27 | public TownCreatedScriptEvent() { 28 | registerCouldMatcher("towny town created"); 29 | } 30 | 31 | public NewTownEvent event; 32 | 33 | @Override 34 | public ObjectTag getContext(String name) { 35 | if (name.equals("town")) { 36 | return new TownTag(event.getTown()); 37 | } 38 | return super.getContext(name); 39 | } 40 | 41 | @EventHandler 42 | public void onTownyTownCreated(NewTownEvent event) { 43 | this.event = event; 44 | fire(event); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/networking/PacketIn.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.networking; 2 | 3 | import com.denizenscript.denizencore.utilities.debugging.Debug; 4 | import io.netty.buffer.ByteBuf; 5 | 6 | import java.nio.charset.StandardCharsets; 7 | import java.util.HashMap; 8 | import java.util.Map; 9 | import java.util.function.Supplier; 10 | 11 | public abstract class PacketIn { 12 | 13 | public abstract String getName(); 14 | 15 | public abstract void process(ByteBuf data); 16 | 17 | public void fail(String reason) { 18 | Debug.echoError(reason); 19 | } 20 | 21 | public String readString(ByteBuf buf, String label) { 22 | if (buf.readableBytes() < 4) { 23 | fail("Invalid " + getName() + " Packet string '" + label + "' length bytes (needed 4)"); 24 | return null; 25 | } 26 | int len = buf.readInt(); 27 | if (buf.readableBytes() < len || len < 0) { 28 | fail("Invalid " + getName() + " Packet string '" + label + "' (bytes requested: " + len + ", bytes available: " + buf.readableBytes() + ")"); 29 | return null; 30 | } 31 | byte[] strBytes = new byte[len]; 32 | buf.readBytes(strBytes, 0, len); 33 | return new String(strBytes, StandardCharsets.UTF_8); 34 | } 35 | 36 | public Map readStringMap(ByteBuf buf) { 37 | int size = buf.readInt(); 38 | Map stringMap = new HashMap<>(size); 39 | for (int i = 0; i < size; i++) { 40 | String key = readString(buf, "Map key"); 41 | String value = readString(buf, "Map value"); 42 | if (key == null || value == null) { 43 | return null; 44 | } 45 | stringMap.put(key, value); 46 | } 47 | return stringMap; 48 | } 49 | 50 | public T readNullable(ByteBuf buf, Supplier readMethod) { 51 | return buf.readBoolean() ? readMethod.get() : null; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/networking/PacketOut.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.networking; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | 5 | import java.nio.charset.StandardCharsets; 6 | import java.util.Map; 7 | import java.util.function.BiConsumer; 8 | 9 | public abstract class PacketOut { 10 | 11 | public abstract void writeTo(ByteBuf buf); 12 | 13 | public void writeString(ByteBuf buf, String str) { 14 | byte[] bytes = str.getBytes(StandardCharsets.UTF_8); 15 | buf.writeInt(bytes.length); 16 | buf.writeBytes(bytes); 17 | } 18 | 19 | public void writeStringMap(ByteBuf buf, Map stringMap) { 20 | buf.writeInt(stringMap.size()); 21 | for (Map.Entry entry : stringMap.entrySet()) { 22 | writeString(buf, entry.getKey()); 23 | writeString(buf, entry.getValue()); 24 | } 25 | } 26 | 27 | public void writeNullable(ByteBuf buf, T object, BiConsumer writeMethod) { 28 | if (object != null) { 29 | buf.writeBoolean(true); 30 | writeMethod.accept(buf, object); 31 | } 32 | else { 33 | buf.writeBoolean(false); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/askyblock/ASkyBlockWorldProperties.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.askyblock; 2 | 3 | import com.denizenscript.denizencore.objects.properties.Property; 4 | import com.denizenscript.denizencore.objects.Mechanism; 5 | import com.wasteofplastic.askyblock.ASkyBlockAPI; 6 | import com.denizenscript.denizen.objects.WorldTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.objects.ObjectTag; 9 | import com.denizenscript.denizencore.tags.Attribute; 10 | 11 | public class ASkyBlockWorldProperties implements Property { 12 | 13 | @Override 14 | public String getPropertyString() { 15 | return null; 16 | } 17 | 18 | @Override 19 | public String getPropertyId() { 20 | return "ASkyBlockWorld"; 21 | } 22 | 23 | @Override 24 | public void adjust(Mechanism mechanism) { 25 | // None 26 | } 27 | 28 | public static boolean describes(ObjectTag object) { 29 | return object instanceof WorldTag; 30 | } 31 | 32 | public static ASkyBlockWorldProperties getFrom(ObjectTag object) { 33 | if (!describes(object)) { 34 | return null; 35 | } 36 | else { 37 | return new ASkyBlockWorldProperties((WorldTag) object); 38 | } 39 | } 40 | 41 | public static final String[] handledTags = new String[] { 42 | "is_skyblock_world" 43 | }; 44 | 45 | public static final String[] handledMechs = new String[] { 46 | }; // None 47 | 48 | public ASkyBlockWorldProperties(WorldTag world) { 49 | this.world = world; 50 | } 51 | 52 | WorldTag world; 53 | ASkyBlockAPI api = ASkyBlockAPI.getInstance(); 54 | 55 | @Override 56 | public ObjectTag getObjectAttribute(Attribute attribute) { 57 | if (attribute == null) { 58 | return null; 59 | } 60 | 61 | // <--[tag] 62 | // @attribute 63 | // @returns ElementTag(Boolean) 64 | // @plugin Depenizen, A SkyBlock 65 | // @description 66 | // Returns whether the world is used by A SkyBlock. 67 | // --> 68 | if (attribute.startsWith("is_skyblock_world")) { 69 | return new ElementTag(api.getIslandWorld() == world.getWorld() || 70 | api.getNetherWorld() == world.getWorld()).getObjectAttribute(attribute.fulfill(1)); 71 | } 72 | 73 | return null; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/bigdoors/BigDoorsWorldProperties.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.bigdoors; 2 | 3 | import com.denizenscript.denizen.objects.WorldTag; 4 | import com.denizenscript.denizencore.objects.Mechanism; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.objects.core.ListTag; 7 | import com.denizenscript.denizencore.objects.properties.Property; 8 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 9 | import com.denizenscript.depenizen.bukkit.bridges.BigDoorsBridge; 10 | import com.denizenscript.depenizen.bukkit.objects.bigdoors.BigDoorsDoorTag; 11 | import nl.pim16aap2.bigDoors.Door; 12 | 13 | public class BigDoorsWorldProperties implements Property { 14 | 15 | public static boolean describes(ObjectTag object) { 16 | return object instanceof WorldTag; 17 | } 18 | 19 | public static BigDoorsWorldProperties getFrom(ObjectTag object) { 20 | if (!describes(object)) { 21 | return null; 22 | } 23 | else { 24 | return new BigDoorsWorldProperties((WorldTag) object); 25 | } 26 | } 27 | 28 | public static final String[] handledMechs = new String[] { 29 | }; // None 30 | 31 | public BigDoorsWorldProperties(WorldTag world) { 32 | this.world = world; 33 | } 34 | 35 | WorldTag world; 36 | 37 | @Override 38 | public String getPropertyString() { 39 | return null; 40 | } 41 | 42 | @Override 43 | public String getPropertyId() { 44 | return "BigDoorsWorld"; 45 | } 46 | 47 | public static void register() { 48 | // <--[tag] 49 | // @attribute 50 | // @returns ListTag(BigDoorsDoorTag) 51 | // @plugin Depenizen, Big Doors 52 | // @description 53 | // Returns a list of Big Doors doors in the world. 54 | // --> 55 | PropertyParser.registerTag(BigDoorsWorldProperties.class, ListTag.class, "bigdoors", (attribute, property) -> { 56 | ListTag doors = new ListTag(); 57 | for (Door door : BigDoorsBridge.commander.getDoorsInWorld(property.world.getWorld())) { 58 | doors.addObject(new BigDoorsDoorTag(door)); 59 | } 60 | return doors; 61 | }); 62 | } 63 | 64 | @Override 65 | public void adjust(Mechanism mechanism) { 66 | // None 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/bossshop/BossShopInventoryProperties.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.bossshop; 2 | 3 | import com.denizenscript.denizencore.objects.properties.Property; 4 | import com.denizenscript.denizencore.objects.Mechanism; 5 | import com.denizenscript.depenizen.bukkit.bridges.BossShopBridge; 6 | import com.denizenscript.denizen.objects.InventoryTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.objects.ObjectTag; 9 | import com.denizenscript.denizencore.tags.Attribute; 10 | import org.black_ixx.bossshop.BossShop; 11 | 12 | public class BossShopInventoryProperties implements Property { 13 | 14 | @Override 15 | public String getPropertyString() { 16 | return null; 17 | } 18 | 19 | @Override 20 | public String getPropertyId() { 21 | return "BossShopInventory"; 22 | } 23 | 24 | @Override 25 | public void adjust(Mechanism mechanism) { 26 | // None 27 | } 28 | public static boolean describes(ObjectTag object) { 29 | return object instanceof InventoryTag; 30 | } 31 | 32 | public static BossShopInventoryProperties getFrom(ObjectTag object) { 33 | if (!describes(object)) { 34 | return null; 35 | } 36 | else { 37 | return new BossShopInventoryProperties((InventoryTag) object); 38 | } 39 | } 40 | 41 | public static final String[] handledTags = new String[] { 42 | "is_bossshop" 43 | }; 44 | 45 | public static final String[] handledMechs = new String[] { 46 | }; // None 47 | 48 | public BossShopInventoryProperties(InventoryTag inventory) { 49 | this.inv = inventory; 50 | } 51 | 52 | InventoryTag inv; 53 | 54 | @Override 55 | public ObjectTag getObjectAttribute(Attribute attribute) { 56 | if (attribute == null) { 57 | return null; 58 | } 59 | 60 | // <--[tag] 61 | // @attribute 62 | // @returns ElementTag(Boolean) 63 | // @plugin Depenizen, BossShopPro 64 | // @description 65 | // Returns whether the inventory is a BossShop. 66 | // --> 67 | if (attribute.startsWith("is_bossshop")) { 68 | BossShop bs = (BossShop) BossShopBridge.instance.plugin; 69 | 70 | return new ElementTag(bs.getAPI().isValidShop(inv.getInventory())).getObjectAttribute(attribute.fulfill(1)); 71 | } 72 | 73 | return null; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/crackshot/CrackShotItemProperties.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.crackshot; 2 | 3 | import com.denizenscript.denizen.objects.ItemTag; 4 | import com.denizenscript.denizencore.objects.Mechanism; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.objects.core.ElementTag; 7 | import com.denizenscript.denizencore.objects.properties.Property; 8 | import com.denizenscript.denizencore.tags.Attribute; 9 | import com.denizenscript.depenizen.bukkit.bridges.CrackShotBridge; 10 | 11 | public class CrackShotItemProperties implements Property { 12 | 13 | public static final String[] handledTags = new String[] { 14 | "crackshot_weapon" 15 | }; 16 | 17 | public static final String[] handledMechs = new String[] { 18 | }; // None 19 | 20 | ItemTag item; 21 | 22 | public CrackShotItemProperties(ItemTag item) { 23 | this.item = item; 24 | } 25 | 26 | public static CrackShotItemProperties getFrom(ObjectTag object) { 27 | if (!describes(object)) { 28 | return null; 29 | } 30 | else { 31 | return new CrackShotItemProperties((ItemTag) object); 32 | } 33 | } 34 | 35 | public static boolean describes(ObjectTag object) { 36 | return object instanceof ItemTag; 37 | } 38 | 39 | @Override 40 | public String getPropertyString() { 41 | return null; 42 | } 43 | 44 | @Override 45 | public String getPropertyId() { 46 | return "CrackShotItem"; 47 | } 48 | 49 | @Override 50 | public ObjectTag getObjectAttribute(Attribute attribute) { 51 | if (attribute == null) { 52 | return null; 53 | } 54 | 55 | // <--[tag] 56 | // @attribute 57 | // @returns ElementTag 58 | // @plugin Depenizen, CrackShot 59 | // @description 60 | // Returns the CrackShot weapon name for the item. 61 | // --> 62 | if (attribute.startsWith("crackshot_weapon")) { 63 | String name = CrackShotBridge.utility.getWeaponTitle(item.getItemStack()); 64 | if (name != null) { 65 | return new ElementTag(name).getObjectAttribute(attribute.fulfill(1)); 66 | } 67 | else { 68 | return null; 69 | } 70 | } 71 | return null; 72 | } 73 | 74 | @Override 75 | public void adjust(Mechanism mechanism) { 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/factions/FactionsLocationProperties.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.factions; 2 | 3 | import com.denizenscript.denizencore.objects.properties.Property; 4 | import com.denizenscript.denizencore.objects.Mechanism; 5 | import com.denizenscript.depenizen.bukkit.objects.factions.FactionTag; 6 | import com.massivecraft.factions.entity.BoardColl; 7 | import com.massivecraft.massivecore.ps.PS; 8 | import com.denizenscript.denizen.objects.LocationTag; 9 | import com.denizenscript.denizencore.objects.ObjectTag; 10 | import com.denizenscript.denizencore.tags.Attribute; 11 | 12 | public class FactionsLocationProperties implements Property { 13 | 14 | @Override 15 | public String getPropertyString() { 16 | return null; 17 | } 18 | 19 | @Override 20 | public String getPropertyId() { 21 | return "FactionsLocation"; 22 | } 23 | 24 | @Override 25 | public void adjust(Mechanism mechanism) { 26 | // None 27 | } 28 | 29 | public static boolean describes(ObjectTag object) { 30 | return object instanceof LocationTag; 31 | } 32 | 33 | public static FactionsLocationProperties getFrom(ObjectTag object) { 34 | if (!describes(object)) { 35 | return null; 36 | } 37 | else { 38 | return new FactionsLocationProperties((LocationTag) object); 39 | } 40 | } 41 | 42 | public static final String[] handledTags = new String[] { 43 | "faction" 44 | }; 45 | 46 | public static final String[] handledMechs = new String[] { 47 | }; // None 48 | 49 | public FactionsLocationProperties(LocationTag location) { 50 | this.location = location; 51 | } 52 | 53 | LocationTag location; 54 | 55 | @Override 56 | public ObjectTag getObjectAttribute(Attribute attribute) { 57 | 58 | // <--[tag] 59 | // @attribute 60 | // @returns FactionTag 61 | // @plugin Depenizen, Factions 62 | // @description 63 | // Returns the faction at the location. (Can also be SafeZone, WarZone, or Wilderness) 64 | // --> 65 | if (attribute.startsWith("faction")) { 66 | return new FactionTag(BoardColl.get().getFactionAt(PS.valueOf(location))) 67 | .getObjectAttribute(attribute.fulfill(1)); 68 | } 69 | 70 | return null; 71 | 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/jobs/JobsPlayerExtensions.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.jobs; 2 | 3 | import com.denizenscript.denizen.objects.PlayerTag; 4 | import com.denizenscript.denizencore.objects.core.ListTag; 5 | import com.denizenscript.depenizen.bukkit.objects.jobs.JobsJobTag; 6 | import com.gamingmesh.jobs.Jobs; 7 | import com.gamingmesh.jobs.container.JobsPlayer; 8 | 9 | public class JobsPlayerExtensions { 10 | 11 | public static void register() { 12 | 13 | // <--[tag] 14 | // @attribute ]> 15 | // @returns JobsJobTag 16 | // @plugin Depenizen, Jobs 17 | // @description 18 | // Returns the job specified with the player's information attached. 19 | // --> 20 | PlayerTag.tagProcessor.registerTag(JobsJobTag.class, JobsJobTag.class, "job", (attribute, object, job) -> { 21 | return new JobsJobTag(job.getJob(), Jobs.getPlayerManager().getJobsPlayer(object.getUUID())); 22 | }); 23 | 24 | // <--[tag] 25 | // @attribute 26 | // @returns ListTag(JobsJobTag) 27 | // @plugin Depenizen, Jobs 28 | // @description 29 | // Returns a list of all jobs that the player is in. 30 | // --> 31 | PlayerTag.tagProcessor.registerTag(ListTag.class, "current_jobs", (attribute, object) -> { 32 | JobsPlayer jobsPlayer = Jobs.getPlayerManager().getJobsPlayer(object.getUUID()); 33 | return new ListTag(jobsPlayer.getJobProgression(), jobProgression -> new JobsJobTag(jobProgression.getJob(), jobsPlayer)); 34 | }); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/mcmmo/McMMOLocationProperties.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.mcmmo; 2 | 3 | import com.denizenscript.denizen.objects.LocationTag; 4 | import com.denizenscript.denizencore.objects.Mechanism; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.objects.core.ElementTag; 7 | import com.denizenscript.denizencore.objects.properties.Property; 8 | import com.denizenscript.denizencore.tags.Attribute; 9 | import com.gmail.nossr50.mcMMO; 10 | 11 | public class McMMOLocationProperties implements Property { 12 | 13 | @Override 14 | public String getPropertyString() { 15 | return null; 16 | } 17 | 18 | @Override 19 | public String getPropertyId() { 20 | return "McMMOLocation"; 21 | } 22 | 23 | @Override 24 | public void adjust(Mechanism mechanism) { 25 | // None 26 | } 27 | 28 | public static boolean describes(ObjectTag object) { 29 | return object instanceof LocationTag; 30 | } 31 | 32 | public static McMMOLocationProperties getFrom(ObjectTag object) { 33 | if (!describes(object)) { 34 | return null; 35 | } 36 | else { 37 | return new McMMOLocationProperties((LocationTag) object); 38 | } 39 | } 40 | 41 | public static final String[] handledTags = new String[] { 42 | "mcmmo" 43 | }; 44 | 45 | public static final String[] handledMechs = new String[] { 46 | }; // None 47 | 48 | public McMMOLocationProperties(LocationTag location) { 49 | this.location = location; 50 | } 51 | 52 | LocationTag location; 53 | 54 | @Override 55 | public ObjectTag getObjectAttribute(Attribute attribute) { 56 | 57 | if (attribute.startsWith("mcmmo")) { 58 | 59 | attribute = attribute.fulfill(1); 60 | 61 | // <--[tag] 62 | // @attribute 63 | // @returns ElementTag(Boolean) 64 | // @plugin Depenizen, mcMMO 65 | // @description 66 | // Returns whether the location is tracked by McMMO as a player-placed block (might only apply to certain block types). 67 | // --> 68 | if (attribute.startsWith("is_placed")) { 69 | return new ElementTag(mcMMO.getPlaceStore().isTrue(location.getBlock())) 70 | .getObjectAttribute(attribute.fulfill(1)); 71 | } 72 | } 73 | 74 | return null; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/noteblockapi/NoteBlockAPIPlayerProperties.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.noteblockapi; 2 | 3 | import com.denizenscript.denizencore.objects.properties.Property; 4 | import com.denizenscript.denizencore.objects.Mechanism; 5 | import com.xxmicloxx.NoteBlockAPI.NoteBlockAPI; 6 | import com.denizenscript.denizen.objects.PlayerTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.objects.ObjectTag; 9 | import com.denizenscript.denizencore.tags.Attribute; 10 | 11 | public class NoteBlockAPIPlayerProperties implements Property { 12 | 13 | @Override 14 | public String getPropertyString() { 15 | return null; 16 | } 17 | 18 | @Override 19 | public String getPropertyId() { 20 | return "NoteBlockAPIPlayer"; 21 | } 22 | 23 | public static boolean describes(ObjectTag object) { 24 | return object instanceof PlayerTag; 25 | } 26 | 27 | public static NoteBlockAPIPlayerProperties getFrom(ObjectTag object) { 28 | if (!describes(object)) { 29 | return null; 30 | } 31 | else { 32 | return new NoteBlockAPIPlayerProperties((PlayerTag) object); 33 | } 34 | } 35 | 36 | public static final String[] handledTags = new String[] { 37 | "nbs_is_playing" 38 | }; 39 | 40 | public static final String[] handledMechs = new String[] { 41 | }; // None 42 | 43 | public NoteBlockAPIPlayerProperties(PlayerTag player) { 44 | this.player = player; 45 | } 46 | 47 | PlayerTag player; 48 | 49 | @Override 50 | public ObjectTag getObjectAttribute(Attribute attribute) { 51 | 52 | // <--[tag] 53 | // @attribute 54 | // @returns ElementTag(Boolean) 55 | // @plugin Depenizen, NoteBlockAPI 56 | // @description 57 | // Returns true if the player is currently listening to a note block song. 58 | // --> 59 | if (attribute.startsWith("nbs_is_playing")) { 60 | return new ElementTag(NoteBlockAPI.isReceivingSong(player.getPlayerEntity())).getObjectAttribute(attribute.fulfill(1)); 61 | } 62 | 63 | return null; 64 | } 65 | 66 | @Override 67 | public void adjust(Mechanism mechanism) { 68 | ElementTag value = mechanism.getValue(); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/playerpoints/PlayerPointsPlayerProperties.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.playerpoints; 2 | 3 | import com.denizenscript.denizencore.objects.properties.Property; 4 | import com.denizenscript.denizencore.objects.Mechanism; 5 | import com.denizenscript.depenizen.bukkit.bridges.PlayerPointsBridge; 6 | import com.denizenscript.denizen.objects.PlayerTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | import com.denizenscript.denizencore.objects.ObjectTag; 9 | import com.denizenscript.denizencore.tags.Attribute; 10 | import org.black_ixx.playerpoints.PlayerPoints; 11 | 12 | public class PlayerPointsPlayerProperties implements Property { 13 | 14 | @Override 15 | public String getPropertyString() { 16 | return null; 17 | } 18 | 19 | @Override 20 | public String getPropertyId() { 21 | return "PlayerPointsPlayer"; 22 | } 23 | 24 | public static boolean describes(ObjectTag object) { 25 | return object instanceof PlayerTag; 26 | } 27 | 28 | public static PlayerPointsPlayerProperties getFrom(ObjectTag object) { 29 | if (!describes(object)) { 30 | return null; 31 | } 32 | else { 33 | return new PlayerPointsPlayerProperties((PlayerTag) object); 34 | } 35 | } 36 | 37 | public static final String[] handledTags = new String[] { 38 | "playerpoints_points" 39 | }; 40 | 41 | public static final String[] handledMechs = new String[] { 42 | }; // None 43 | 44 | public PlayerPointsPlayerProperties(PlayerTag player) { 45 | this.player = player; 46 | } 47 | 48 | PlayerTag player; 49 | 50 | @Override 51 | public ObjectTag getObjectAttribute(Attribute attribute) { 52 | 53 | // <--[tag] 54 | // @attribute 55 | // @returns ElementTag(Number) 56 | // @plugin Depenizen, PlayerPoints 57 | // @description 58 | // Returns the amount of points the player has. Only works on online players. 59 | // --> 60 | if (attribute.startsWith("playerpoints_points")) { 61 | return new ElementTag(((PlayerPoints) PlayerPointsBridge.instance.plugin).getAPI() 62 | .look(player.getUUID())).getObjectAttribute(attribute.fulfill(1)); 63 | } 64 | 65 | return null; 66 | } 67 | 68 | @Override 69 | public void adjust(Mechanism mechanism) { 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/residence/ResidenceLocationExtensions.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.residence; 2 | 3 | import com.bekvon.bukkit.residence.Residence; 4 | import com.bekvon.bukkit.residence.protection.ClaimedResidence; 5 | import com.denizenscript.depenizen.bukkit.objects.residence.ResidenceTag; 6 | import com.denizenscript.denizen.objects.LocationTag; 7 | import com.denizenscript.denizencore.objects.core.ElementTag; 8 | 9 | public class ResidenceLocationExtensions { 10 | 11 | public static void register() { 12 | 13 | // <--[tag] 14 | // @attribute 15 | // @returns ElementTag(Boolean) 16 | // @plugin Depenizen, Residence 17 | // @description 18 | // Returns whether the location has a Residence. 19 | // --> 20 | LocationTag.tagProcessor.registerTag(ElementTag.class, "has_residence", (attribute, location) -> { 21 | ClaimedResidence res = Residence.getInstance().getResidenceManager().getByLoc(location); 22 | return new ElementTag(res != null); 23 | }); 24 | 25 | // <--[tag] 26 | // @attribute 27 | // @returns ResidenceTag 28 | // @plugin Depenizen, Residence 29 | // @description 30 | // Returns the Residence contained by this location. 31 | // --> 32 | LocationTag.tagProcessor.registerTag(ResidenceTag.class, "residence", (attribute, location) -> { 33 | ClaimedResidence res = Residence.getInstance().getResidenceManager().getByLoc(location); 34 | if (res != null) { 35 | return new ResidenceTag(res); 36 | } 37 | return null; 38 | }); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/shopkeepers/ShopKeepersEntityExtensions.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.shopkeepers; 2 | 3 | import com.denizenscript.denizen.objects.EntityTag; 4 | import com.denizenscript.denizencore.objects.core.ElementTag; 5 | import com.denizenscript.depenizen.bukkit.objects.shopkeepers.ShopKeeperTag; 6 | 7 | public class ShopKeepersEntityExtensions { 8 | 9 | public static void register() { 10 | 11 | // <--[tag] 12 | // @attribute 13 | // @returns ElementTag(Boolean) 14 | // @plugin Depenizen, ShopKeepers 15 | // @description 16 | // Returns whether the entity is a Shopkeeper. 17 | // --> 18 | EntityTag.tagProcessor.registerTag(ElementTag.class, "is_shopkeeper", (attribute, object) -> { 19 | return new ElementTag(ShopKeeperTag.isShopKeeper(object)); 20 | }); 21 | 22 | // <--[tag] 23 | // @attribute 24 | // @returns ShopKeeperTag 25 | // @plugin Depenizen, ShopKeepers 26 | // @description 27 | // Returns the ShopKeeper for this entity, if it is one (see also <@link tag EntityTag.is_shopkeeper>). 28 | // --> 29 | EntityTag.tagProcessor.registerTag(ShopKeeperTag.class, "shopkeeper", (attribute, object) -> { 30 | return ShopKeeperTag.fromEntity(object); 31 | }); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/towny/TownyWorldProperties.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.towny; 2 | 3 | import com.denizenscript.denizen.objects.WorldTag; 4 | import com.denizenscript.denizencore.objects.properties.Property; 5 | import com.denizenscript.denizencore.objects.Mechanism; 6 | import com.denizenscript.denizencore.objects.properties.PropertyParser; 7 | import com.palmergames.bukkit.towny.TownyAPI; 8 | import com.denizenscript.denizencore.objects.core.ElementTag; 9 | import com.denizenscript.denizencore.objects.ObjectTag; 10 | 11 | public class TownyWorldProperties implements Property { 12 | 13 | @Override 14 | public String getPropertyString() { 15 | return null; 16 | } 17 | 18 | @Override 19 | public String getPropertyId() { 20 | return "TownyWorld"; 21 | } 22 | 23 | @Override 24 | public void adjust(Mechanism mechanism) { 25 | } 26 | 27 | public static boolean describes(ObjectTag object) { 28 | return object instanceof WorldTag; 29 | } 30 | 31 | public static TownyWorldProperties getFrom(ObjectTag object) { 32 | if (!describes(object)) { 33 | return null; 34 | } 35 | else { 36 | return new TownyWorldProperties((WorldTag) object); 37 | } 38 | } 39 | 40 | public static final String[] handledMechs = new String[] { 41 | }; // None 42 | 43 | public TownyWorldProperties(WorldTag world) { 44 | this.world = world; 45 | } 46 | 47 | public WorldTag world; 48 | 49 | public static void register() { 50 | 51 | // <--[tag] 52 | // @attribute 53 | // @returns ElementTag(Boolean) 54 | // @plugin Depenizen, Towny 55 | // @description 56 | // Returns whether this world has Towny enabled. 57 | // --> 58 | PropertyParser.registerTag(TownyWorldProperties.class, ElementTag.class, "towny_enabled", (attribute, property) -> { 59 | return new ElementTag(TownyAPI.getInstance().isTownyWorld(property.world.getWorld())); 60 | }); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/viaversion/ViaVersionPlayerExtensions.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.viaversion; 2 | 3 | import com.denizenscript.denizen.objects.PlayerTag; 4 | import com.denizenscript.denizencore.objects.core.ElementTag; 5 | import com.viaversion.viaversion.api.Via; 6 | import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; 7 | 8 | public class ViaVersionPlayerExtensions { 9 | 10 | public static void register() { 11 | 12 | // <--[tag] 13 | // @attribute 14 | // @returns ElementTag(Number) 15 | // @plugin Depenizen, ViaVersion 16 | // @deprecated Use 'PlayerTag.viaversion_protocol' 17 | // @description 18 | // Deprecated in favor of <@link tag PlayerTag.viaversion_protocol>. 19 | // --> 20 | 21 | // <--[tag] 22 | // @attribute 23 | // @returns ElementTag(Number) 24 | // @plugin Depenizen, ViaVersion 25 | // @description 26 | // Returns the protocol version number of the player's client. 27 | // See <@link url https://wiki.vg/Protocol_version_numbers> as a reference list. 28 | // See also <@link tag PlayerTag.viaversion_version> 29 | // --> 30 | PlayerTag.registerOnlineOnlyTag(ElementTag.class, "viaversion_protocol", (attribute, object) -> { 31 | return new ElementTag(Via.getAPI().getPlayerVersion(object.getUUID())); 32 | }, "viaversion"); 33 | 34 | // <--[tag] 35 | // @attribute 36 | // @returns ElementTag 37 | // @plugin Depenizen, ViaVersion 38 | // @description 39 | // Returns the player's client version ("1.19.4", "1.18.2"...). 40 | // See also <@link tag PlayerTag.viaversion_protocol> 41 | // --> 42 | PlayerTag.registerOnlineOnlyTag(ElementTag.class, "viaversion_version", (attribute, object) -> { 43 | int version = Via.getAPI().getPlayerVersion(object.getUUID()); 44 | return new ElementTag(ProtocolVersion.getProtocol(version).getName(), true); 45 | }); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/vivecraft/ViveCraftPlayerProperties.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.vivecraft; 2 | 3 | import com.denizenscript.denizen.objects.PlayerTag; 4 | import com.denizenscript.denizencore.objects.core.ElementTag; 5 | import com.denizenscript.depenizen.bukkit.objects.vivecraft.ViveCraftPlayerTag; 6 | import org.vivecraft.VSE; 7 | 8 | public class ViveCraftPlayerProperties { 9 | 10 | public static void register() { 11 | 12 | // <--[tag] 13 | // @attribute 14 | // @returns ElementTag(Boolean) 15 | // @plugin Depenizen, ViveCraft 16 | // @description 17 | // Returns whether the player is running on VR or not. 18 | // --> 19 | PlayerTag.registerOnlineOnlyTag(ElementTag.class,"is_vivecraft", (attribute, object) -> { 20 | return new ElementTag(VSE.isVive(object.getPlayerEntity())); 21 | }); 22 | 23 | // <--[tag] 24 | // @attribute 25 | // @returns ViveCraftPlayerTag 26 | // @plugin Depenizen, ViveCraft 27 | // @description 28 | // Returns the ViveCraftPlayerTag for this player. 29 | // --> 30 | PlayerTag.registerOnlineOnlyTag(ViveCraftPlayerTag.class, "vivecraft", (attribute, object) -> { 31 | return new ViveCraftPlayerTag(object.getPlayerEntity()); 32 | }); 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/properties/worldguard/WorldGuardWorldExtensions.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.properties.worldguard; 2 | 3 | import com.denizenscript.denizen.objects.WorldTag; 4 | import com.denizenscript.denizencore.objects.core.ElementTag; 5 | import com.denizenscript.denizencore.objects.core.ListTag; 6 | import com.denizenscript.depenizen.bukkit.bridges.WorldGuardBridge; 7 | import com.denizenscript.depenizen.bukkit.objects.worldguard.WorldGuardRegionTag; 8 | import com.sk89q.worldguard.protection.regions.ProtectedRegion; 9 | 10 | public class WorldGuardWorldExtensions { 11 | 12 | public static void register() { 13 | 14 | // <--[tag] 15 | // @attribute 16 | // @returns ListTag(WorldGuardRegionTag) 17 | // @plugin Depenizen, WorldGuard 18 | // @description 19 | // Returns a list of WorldGuard regions in this world. 20 | // --> 21 | WorldTag.tagProcessor.registerTag(ListTag.class, "list_regions", (attribute, world) -> { 22 | ListTag listRegions = new ListTag(); 23 | for (ProtectedRegion region : WorldGuardBridge.getManager(world.getWorld()).getRegions().values()) { 24 | listRegions.addObject(new WorldGuardRegionTag(region, world.getWorld())); 25 | } 26 | return listRegions; 27 | }); 28 | 29 | // <--[tag] 30 | // @attribute ]> 31 | // @returns ElementTag(Boolean) 32 | // @plugin Depenizen, WorldGuard 33 | // @description 34 | // Returns whether a region exists in this world for the given name. 35 | // --> 36 | WorldTag.tagProcessor.registerTag(ElementTag.class, ElementTag.class, "has_region", (attribute, world, name) -> { 37 | return new ElementTag(WorldGuardBridge.getManager(world.getWorld()).hasRegion(name.asString())); 38 | }); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/utilities/BridgeLoadException.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.utilities; 2 | 3 | public class BridgeLoadException extends RuntimeException { 4 | 5 | private static final long serialVersionUID = 1159105944857392268L; 6 | public String message; 7 | 8 | public BridgeLoadException(String msg) { 9 | message = msg; 10 | } 11 | 12 | @Override 13 | public String getMessage() { 14 | return message; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/utilities/mythicmobs/targeters/DenizenEntityTargeter.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.utilities.mythicmobs.targeters; 2 | 3 | import com.denizenscript.denizen.objects.EntityTag; 4 | import com.denizenscript.denizencore.objects.ObjectTag; 5 | import com.denizenscript.denizencore.objects.core.ListTag; 6 | import com.denizenscript.denizencore.scripts.queues.ContextSource; 7 | import com.denizenscript.denizencore.tags.TagContext; 8 | import com.denizenscript.denizencore.tags.TagManager; 9 | import com.denizenscript.denizencore.utilities.CoreUtilities; 10 | import io.lumine.mythic.api.adapters.AbstractEntity; 11 | import io.lumine.mythic.api.config.MythicLineConfig; 12 | import io.lumine.mythic.api.skills.SkillMetadata; 13 | import io.lumine.mythic.api.skills.targeters.IEntityTargeter; 14 | import io.lumine.mythic.bukkit.BukkitAdapter; 15 | 16 | import java.util.HashMap; 17 | import java.util.HashSet; 18 | import java.util.List; 19 | 20 | public class DenizenEntityTargeter implements IEntityTargeter { 21 | 22 | final String tag; 23 | ContextSource.SimpleMap source; 24 | HashMap context; 25 | 26 | public DenizenEntityTargeter(MythicLineConfig mlc) { 27 | tag = mlc.getString("tag"); 28 | context = new HashMap<>(); 29 | source = new ContextSource.SimpleMap(); 30 | source.contexts = new HashMap<>(); 31 | } 32 | 33 | @Override 34 | public HashSet getEntities(SkillMetadata skillMetadata) { 35 | TagContext tagContext = CoreUtilities.noDebugContext.clone(); 36 | tagContext.contextSource = source; 37 | source.contexts.put("entity", new EntityTag(skillMetadata.getCaster().getEntity().getBukkitEntity()).getDenizenObject()); 38 | ObjectTag object = TagManager.tagObject(tag, tagContext); 39 | List list = object.asType(ListTag.class, tagContext).filter(EntityTag.class, tagContext); 40 | HashSet entities = new HashSet<>(); 41 | for (EntityTag entity : list) { 42 | entities.add(BukkitAdapter.adapt(entity.getBukkitEntity())); 43 | } 44 | return entities; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/denizenscript/depenizen/bukkit/utilities/mythicmobs/targeters/DenizenLocationTargeter.java: -------------------------------------------------------------------------------- 1 | package com.denizenscript.depenizen.bukkit.utilities.mythicmobs.targeters; 2 | 3 | import com.denizenscript.denizen.objects.EntityTag; 4 | import com.denizenscript.denizen.objects.LocationTag; 5 | import com.denizenscript.denizencore.objects.ObjectTag; 6 | import com.denizenscript.denizencore.objects.core.ListTag; 7 | import com.denizenscript.denizencore.scripts.queues.ContextSource; 8 | import com.denizenscript.denizencore.tags.TagContext; 9 | import com.denizenscript.denizencore.tags.TagManager; 10 | import com.denizenscript.denizencore.utilities.CoreUtilities; 11 | import io.lumine.mythic.api.adapters.AbstractLocation; 12 | import io.lumine.mythic.api.config.MythicLineConfig; 13 | import io.lumine.mythic.api.skills.SkillMetadata; 14 | import io.lumine.mythic.api.skills.targeters.ILocationTargeter; 15 | import io.lumine.mythic.bukkit.BukkitAdapter; 16 | 17 | import java.util.HashMap; 18 | import java.util.HashSet; 19 | import java.util.List; 20 | 21 | public class DenizenLocationTargeter implements ILocationTargeter { 22 | 23 | final String tag; 24 | ContextSource.SimpleMap source; 25 | HashMap context; 26 | 27 | public DenizenLocationTargeter(MythicLineConfig mlc) { 28 | tag = mlc.getString("tag"); 29 | context = new HashMap<>(); 30 | source = new ContextSource.SimpleMap(); 31 | source.contexts = new HashMap<>(); 32 | } 33 | 34 | @Override 35 | public HashSet getLocations(SkillMetadata skillMetadata) { 36 | TagContext tagContext = CoreUtilities.noDebugContext.clone(); 37 | tagContext.contextSource = source; 38 | source.contexts.put("entity", new EntityTag(skillMetadata.getCaster().getEntity().getBukkitEntity()).getDenizenObject()); 39 | ObjectTag object = TagManager.tagObject( tag , tagContext); 40 | List list = (object.asType(ListTag.class, tagContext)).filter(LocationTag.class, tagContext); 41 | HashSet locations = new HashSet<>(); 42 | for (LocationTag location : list) { 43 | locations.add(BukkitAdapter.adapt(location)); 44 | } 45 | return locations; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/resources/config.yml: -------------------------------------------------------------------------------- 1 | # Depenizen config 2 | 3 | # Bungee server address (if any). Exclude the port. 4 | # For example: "localhost" 5 | # Use "none" to disable Bungee support functionality. 6 | Bungee server address: none 7 | # Set to the bungee server's primary port (if in use). 8 | Bungee server port: 25565 9 | 10 | # Settings related to the server-side support of the Clientizen mod, a mod providing client-side scripting & integration with servers running Denizen (and Depenizen). 11 | # For more information, see the GitHub repository: https://github.com/DenizenScript/Clientizen 12 | Clientizen: 13 | # Whether server-side Clientizen support should be enabled. 14 | # This controls things like the server sending Clientizen clients scripts, receiving events from clients, etc. 15 | # Disabling this setting will override all other Clientizen settings. 16 | enabled: false 17 | # Whether the server should listen to clients sending the server events, see the 'clientizen event' script event. 18 | process events: true 19 | # The maximum length (in bytes) for packets received from clients. Any packets exceeding this length will be refused. 20 | max packet length: 10000 21 | -------------------------------------------------------------------------------- /src/main/resources/plugin.yml: -------------------------------------------------------------------------------- 1 | name: Depenizen 2 | authors: ['The DenizenScript Team'] 3 | version: ${project.version} (build ${BUILD_NUMBER}) 4 | main: com.denizenscript.depenizen.bukkit.Depenizen 5 | depend: [Denizen] 6 | 7 | api-version: '1.13' 8 | 9 | softdepend: 10 | - AreaShop 11 | - AriKeys 12 | - ASkyBlock 13 | - BetonQuest 14 | - BigDoors 15 | - BossShopPro 16 | - ChestShop 17 | - CoreProtect 18 | - CrackShot 19 | - EffectLib 20 | - Essentials 21 | - Factions 22 | - GriefPrevention 23 | - Jobs 24 | - LibsDisguises 25 | - LuckPerms 26 | - MagicSpells 27 | - mcMMO 28 | - MobArena 29 | - MythicKeysPlugin 30 | - MythicMobs 31 | - NoCheatPlus 32 | - NoteBlockAPI 33 | - OpenTerrainGenerator 34 | - PlaceholderAPI 35 | - PlayerPoints 36 | - PlotSquared 37 | - PVPArena 38 | - PVPStats 39 | - Quests 40 | - Residence 41 | - Sentinel 42 | - Shopkeepers 43 | - SkillAPI 44 | - TerrainControl 45 | - Towny 46 | - TownyChat 47 | - Vampire 48 | - ViaVersion 49 | - Vivecraft-Spigot-Extensions 50 | - Votifier 51 | - WorldEdit 52 | - WorldGuard 53 | --------------------------------------------------------------------------------