Commit Graph
3874 Commits
Author SHA1 Message Date
bigguy345 26a9c99000 All Imports used in JaninoScript implementations (param types/return types) are now passed implicitly to ScriptDocument to store for when hook stubs are generated/hooks are manually added 2026-01-14 03:02:15 +02:00
bigguy345 165e3e2d14 Passed default imports to JaninoScript 2026-01-14 02:49:20 +02:00
bigguy345 21e05575ad merge conflicts 2026-01-14 00:30:25 +02:00
bigguy345 0a33f7dd12 Merge branch 'janino-scripts' into syntax-highlighter-unified
# Conflicts:
#	src/main/java/noppes/npcs/blocks/tiles/TileScripted.java
#	src/main/java/noppes/npcs/client/gui/GuiScript.java
#	src/main/java/noppes/npcs/client/gui/script/GuiJaninoScript.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptEffect.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptInterface.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptLinkedItem.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptRecipe.java
#	src/main/java/noppes/npcs/controllers/data/DataScript.java
#	src/main/java/noppes/npcs/controllers/data/EffectScript.java
#	src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java
#	src/main/java/noppes/npcs/controllers/data/GlobalNPCDataScript.java
#	src/main/java/noppes/npcs/controllers/data/IScriptHandler.java
#	src/main/java/noppes/npcs/controllers/data/IScriptUnit.java
#	src/main/java/noppes/npcs/controllers/data/LinkedItemScript.java
#	src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java
#	src/main/java/noppes/npcs/controllers/data/RecipeScript.java
#	src/main/java/noppes/npcs/janino/JaninoScript.java
#	src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java
2026-01-14 00:28:11 +02:00
bigguy345 54d0fe2b1b Very first implementation of JaninoNpcScript 2026-01-14 00:24:38 +02:00
bigguy345 cc0959dcfe Added run(EnumScriptType, Event) and
run(String, Event) methods to IScriptUnit interface, with JaninoScript
delegating to callByHookType(). This provides a cleaner abstraction that
supports both ScriptContainer and JaninoScript without type checking.

Affected files:
- IScriptUnit: Added run() methods to interface
- JaninoScript: Implemented run() delegation methods
- DataScript, PlayerDataScript, GlobalNPCDataScript, ForgeDataScript
- EffectScript, LinkedItemScript, RecipeScript
- ScriptCustomItem, TileScripted: Refactored to use polymorphic calls
2026-01-14 00:16:58 +02:00
bigguy345 cd60a03544 Moved all INpcScriptHandler implementations to IScriptHandler as its redundant 2026-01-13 23:45:14 +02:00
bigguy345 10b6ccf427 Converted to using IScriptUnit 2026-01-13 22:35:54 +02:00
bigguy345 73db727c47 Deleagted all ScriptContainer NBT based creation to IScriptUnit.createFromNBT 2026-01-13 22:16:51 +02:00
bigguy345 fbcda09fe2 Used IScriptUnit hook stub generation 2026-01-13 21:39:39 +02:00
bigguy345 92cd894f39 Improved JaninoScript hook generation 2026-01-13 21:39:04 +02:00
bigguy345 275cca70c2 Redundant mouseClicked in GuiScript 2026-01-13 20:59:54 +02:00
bigguy345 ba6c3e607c more bruh 2 2026-01-13 20:30:01 +02:00
bigguy345 7b811bdea1 more bruh 2026-01-13 19:16:58 +02:00
bigguy345 8c8f37e75d more merge conflict resolution 2026-01-13 19:13:31 +02:00
bigguy345 1df05406c8 Imported temp place holders from syntax-highlighter-unified 2026-01-13 19:08:29 +02:00
bigguy345 6173e98998 merge conflict resolutioon 2026-01-13 19:05:52 +02:00
bigguy345 fd0e20f364 Made ScriptContext class based instead 2026-01-13 19:03:01 +02:00
Kam 71dba15270 Add Script Context and better parsing for d.ts handling 2026-01-13 19:02:52 +02:00
bigguy345 cd92c340c7 resolved merge conflicts with dev 2026-01-13 18:25:37 +02:00
bigguy345 c3e032dcf2 Abstracted ScriptContainer & JaninoScript to IScriptUnit + global implementation 2026-01-13 18:25:28 +02:00
bigguy345 1372127266 GuiScript now extends GuiScriptInterface + Full screen support 2026-01-13 18:25:20 +02:00
bigguy345 ca8285e23f Made these 3 detached GuiScripts depend on GuiScriptInterface 2026-01-13 18:25:09 +02:00
bigguy345 88d43f8199 Merge branch 'dev' into janino-scripts
# Conflicts:
#	repositories.gradle
2026-01-13 18:18:06 +02:00
bigguy345 95e7b3255e resolved merge conflicts with dev 2026-01-13 18:14:38 +02:00
bigguy345 83e11a05da Merge branch 'refs/heads/dev' into syntax-highlighter-unified
# Conflicts:
#	repositories.gradle
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptBlock.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptEffect.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptItem.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptLinkedItem.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java
#	src/main/java/noppes/npcs/client/gui/script/GuiScriptRecipe.java
2026-01-13 18:12:23 +02:00
bigguy345 818acfb00b Abstracted ScriptContainer & JaninoScript to IScriptUnit + global implementation 2026-01-13 17:34:14 +02:00
Kam 0328be57eb Add BukkitUtil, VaultUtil for Future Economy Handling 2026-01-12 12:50:08 -05:00
Kam 63c704f80a Fix Compile 2026-01-12 05:55:49 -05:00
bigguy345 ecf1b38763 GuiScript now extends GuiScriptInterface + Full screen support 2026-01-12 03:56:22 +02:00
Kam ff5ce2f556 Add Ability Hooks to NPCs 2026-01-11 20:35:53 -05:00
Kam 276465a175 Merge branch 'ability' into dev 2026-01-11 20:35:45 -05:00
bigguy345 4311931f25 Made these 3 detached GuiScripts depend on GuiScriptInterface 2026-01-12 03:28:18 +02:00
Kam 11808df036 Script Hook Handler 2026-01-11 17:15:13 -05:00
Kam cc94773845 Merge pull request #250 from KAMKEEL/review-ability-system-variables-in-custom-npc+
Refactor ability logic: remove vertical KB, add teleport modes, cutter/guard updates, collision & sounds
2026-01-11 16:05:00 -05:00
Kam 828e99d427 Revise ability logic and configs 2026-01-11 16:04:49 -05:00
bigguy345 3ef16fb2ab submodules 2026-01-11 17:03:00 +02:00
Kam 3dc56aba06 Update api 2026-01-10 23:06:39 -05:00
Kam a0184206bf Update api 2026-01-10 23:06:30 -05:00
Kam fdb2ff98d8 Large Ability changes, cleanup, langs, fixes. 2026-01-10 23:06:13 -05:00
Claude c7d04cb9d3 Simplify ability interrupt logic and reorganize GUI
- Remove interruptThreshold field entirely - interrupts now based on damage source type
- Update canInterrupt() to only allow interrupts from direct physical hits (not magic/fire/explosions)
- Interruption only occurs during WINDUP phase, not ACTIVE
- Reorganize SubGuiAbilityConfig into 4 tabs: General, Type, Target, Effects
- Increase GUI size to 420x216 for better layout
2026-01-10 10:32:24 +00:00
Claude b40fec2270 Clean up imports to use short class names
Replace fully qualified class names with proper imports in ability files:
- Added cpw.mods.fml.relauncher.Side and SideOnly imports
- Added IAbilityConfigCallback and SubGuiAbilityConfig imports
- Added SubGuiAbility* imports for each ability type
- Replaced @cpw.mods.fml.relauncher.SideOnly(...) with @SideOnly(Side.CLIENT)
- Replaced fully qualified return types with short class names
2026-01-10 10:03:10 +00:00
Claude f28d3483e6 Refactor Ability GUI to support third-party extensibility
This refactoring allows third-party mods to provide their own custom GUI
for ability type settings by extending SubGuiAbilityConfig.

Changes:
- Refactored SubGuiAbilityConfig as base class with GuiMenuTopButton tabs
- Added virtual methods: initTypeTab(), handleTypeButton(), handleTypeTextField()
- Added createConfigGui() method to Ability base class for GUI instantiation
- Created 15 SubGuiAbility* subclasses in new ability package
- Updated GuiNPCAbilities and GuiNpcManageAbilities to use ability.createConfigGui()

Third-party mods can now:
1. Create a custom Ability subclass
2. Extend SubGuiAbilityConfig with their own GUI
3. Override createConfigGui() to return their custom GUI
2026-01-10 09:48:37 +00:00
Kam 479a2c5384 Update api 2026-01-10 02:17:00 -05:00
Kam bd9e0fdf43 Update api 2026-01-10 02:16:49 -05:00
bigguy345 c82f7517de Revert "Annotations for API events"
This reverts commit 06aa0ce22e.
2026-01-10 07:13:00 +02:00
bigguy345 06aa0ce22e Annotations for API events 2026-01-10 07:12:46 +02:00
bigguy345 5b36cdac1b Made ScriptContext class based instead 2026-01-10 06:53:48 +02:00
bigguy345 576401ebde Added object instantiation for Jave.type: i.e.
var FileClass = Java.type("java.io.File")
    var file =  new FileClass("name")
2026-01-10 06:31:27 +02:00
bigguy345 0d11db729b Merge remote-tracking branch 'origin/syntax-highlighter-unified' into syntax-highlighter-unified 2026-01-10 06:04:07 +02:00