Commit Graph
3992 Commits
Author SHA1 Message Date
KAMKEEL 1532ef722c Merge branch 'dev' into pr-278 2026-08-11 05:51:40 -04:00
KAMKEEL caa39d6d5d Merge pull request #283 from zeng-github01: disable auto-open GUI for BlockBorder and BlockNpcRedstone 2026-08-11 05:22:36 -04:00
KAMKEEL a71532f49a Merge pull request #292 from postyizhan: adapt quest tracker height to content 2026-08-11 05:22:35 -04:00
KAMKEEL a028142dda Fix mouse wheel scrolling in the script editors
Mouse.getDWheel() clears the accumulated delta, so whichever widget polled it
first in a frame took it and every later reader saw zero. The script text areas
polled it themselves, after the parent screen had already drained it for its
scroll lists, so the wheel did nothing in the player, NPC and event script GUIs.
The screen now reads the wheel once per frame into the mouseScroll field it
already declared for this, and each widget zeroes it when it consumes it.
2026-08-11 05:08:15 -04:00
KAMKEEL 677d50fa03 Keep client-only sub-GUI types out of condition and zone descriptors
Same leak as the ability magic editor: @SideOnly strips the annotated method on a
server but not the synthetic lambdas it generates, so ConditionHasEffect,
ConditionQuestCompleted, AbilityTrap and AbilityZone all shipped methods whose
descriptors named a client-only GUI class. Each field is now built in the GUI
class it belongs to.
2026-08-11 05:00:02 -04:00
KAMKEEL 466b49db5e Let the day/night transform actually fire
EntityAITransform claimed the PASSIVE mutex, so any running movement or look
task blocked it from ever starting. The swap only happened in the gaps where
those yielded - which is why it appeared to trigger when an NPC said a line and
for a moment afterwards. The task only polls world time and flips the state, so
it needs no mutex at all.
2026-08-11 04:52:50 -04:00
KAMKEEL dedbe94cd8 Keep client-only sub-GUI types out of Ability's method descriptors
The magic editor field was built with lambdas inside Ability.getAllDefinitions.
subGuiField is generic, so those lambdas took SubGuiAbilityMagic as their
descriptor type. @SideOnly strips the annotated method on a server but not the
synthetic lambdas it generates, so anything reflecting over Ability's declared
methods - Nashorn's adapter generator when a script touches an ability - hit
NoClassDefFoundError. Building the field in the client class keeps the type out
of Ability entirely.
2026-08-11 04:44:14 -04:00
KAMKEEL 9f4334a803 Line the monkey tail up with the player model
heightFactor did not fully cancel ModelTail''s anchor, leaving both the wrapped
and plain monkey tails two pixels below where JBRA renders them on players.
2026-08-11 03:26:32 -04:00
KAMKEEL 6af66b8883 Fix NPCs getting stuck after using one ability
The terminal DAZED to IDLE transition was swallowed before the completion
switch ran, so the finished ability stayed set as the current one and the NPC
never started another until it died and reset. Guard abilities compounded it:
NPCs reuse a single ability instance and onExecute left pendingCompletion set,
ending every later activation on its first tick.
2026-08-11 03:25:51 -04:00
KAMKEEL abd1c7cbeb Make per-ability cooldowns work on NPCs
An NPC rolled both clocks and folded the ability''s cooldown into the global one
as well, so the global timer always outlasted the per-ability entry and the
setting could never reject anything. The global timer now only paces the NPC
when the ability tracks its own cooldown.
2026-08-11 03:24:59 -04:00
KAMKEEL 3565c66cf8 Keep ability cooldowns across logout
Dimension change and teleport were already fixed, but disconnect still cleared
cooldowns and login cleared them again, and they were never written to NBT - so
relogging reset every cooldown. They are absolute world-time deadlines, so they
now persist and are restored on load.
2026-08-11 03:24:19 -04:00
KAMKEEL 68b5191db6 Fix trader edits being lost on an existing linked market
Closing the setup GUI saved the market from the server''s stale role and then
re-read that market over the edits it had just applied, so stock and currency
cost changes never survived. The role now saves first and the market is written
from it, and relinking to another market no longer pushes pre-link data over it.
2026-08-11 03:21:46 -04:00
KAMKEEL 17f61de57a Fix editor StackOverflow on self-referential generic bounds
fromGenericType expanded a type variable bound, then expanded the bound''s type
arguments, which led straight back to the same variable. Any enum reaches it
through Enum<E extends Enum<E>>, so typing ability.getAllowedBy() crashed the
client. Track the variables being expanded and emit repeats unbounded.
2026-08-11 03:20:34 -04:00
KAMKEEL 5aa843966a Fix divide by zero clicking the profiles scrollbar
The scrollbar hit test was pure geometry, so clicking its column before the
profile list had loaded - or on any list short enough not to scroll - divided
by a maxScrollY of zero. The draw path already guarded on the same value.
2026-08-11 03:19:52 -04:00
KAMKEEL 0829b6285f Update EntityNPCInterface.java 2026-08-11 02:17:28 -04:00
postyizhan 322626015d fix: adapt quest tracker height to content 2026-08-02 22:32:00 +08:00
KAMKEEL 4a7c7b09c7 - Fix Counter infinite recursion
- Tags Get Packet
- Cooldowns Resetting on Dimension Change / Teleport
2026-04-20 21:00:54 -04:00
bigguy345 1a77728bcd OVERHAULED IGuiData FRAMEWORK SO ALL UPDATES WIRE THROUGH SyncController (deprecated legacy setGuiData) 2026-04-03 18:00:27 +02:00
bigguy345 7f63b64a66 Set ScriptHandler default to enabled = true 2026-04-03 16:32:56 +02:00
bigguy345 8e8ab06507 Fixed janino script handler serialization inconsistencies 2026-04-03 16:32:34 +02:00
bigguy345 4c301b3c1c Improved PlayerDataSyncHandler 2026-04-02 04:29:29 +02:00
bigguy345 67c6cf14d3 SyncController common SyncRegistry registration (SyncTypes must be on client & server) 2026-04-02 04:26:49 +02:00
zeng-github01 b8d68f771f refactor: disable auto-open GUI for BlockBorder and BlockNpcRedstone
- Removed auto-open GUI logic upon placing BlockBorder and BlockNpcRedstone.
- Resolved a race condition where the GUI would open before NBT/Permission data was fully synced from the server, causing "Permission Denied" or empty states.
- Fixed a logic bug in SubGuiNpcAvailabilityDialog where 'questId' was incorrectly used instead of 'dialogId' when opening the selection picker.
- This change ensures better UX as manual interaction guarantees all data is properly initialized.
2026-04-02 08:58:09 +08:00
bigguy345 facee7c388 Expanded SyncController scope to allow syncing based on string operation keys instead of just int ids (i.e ability keys) 2026-04-02 00:24:15 +02:00
bigguy345 b28ea7226f SyncController OVERHAUL PHASE #3:
- Clean up, reorganization and documentation
2026-03-31 22:55:42 +02:00
bigguy345 6d0655ad7d SyncController OVERHAUL PHASE #2:
- Created SyncRegistry and SyncHandler
- Extracted all 14 SyncType family handling to their own SyncHandler
- Rewritten SyncController to accomodate the new framework
2026-03-31 21:44:23 +02:00
bigguy345 48281c8d34 SyncController OVERHAUL PHASE #1:
- Refactored EnumSyncType into object based SyncType registry, so other mods can register their own types
2026-03-31 19:59:53 +02:00
zeng-github01 948eb91b42 Fixes 2026-03-29 10:25:02 +08:00
zeng-github01 07a914272a Fix pEffect legacy Compatibility 2026-03-29 10:19:32 +08:00
Kam f6e7809a29 Fix Auction House ID Saving 2026-03-15 18:23:14 -04:00
Kam 85ef28ca76 Fix DataScript Issue Global API Objects 2026-03-15 18:03:17 -04:00
Kam f4062f3edd Fix Script Container Issue 2026-03-15 14:43:07 -04:00
Kam 92133afe75 Fix issue with Finish Quest API 2026-03-15 00:09:56 -04:00
Vidal b989a89889 AbilityDefend event 2026-03-13 20:48:25 -03:00
Kam edf5ff7c73 Chained Ability Cooldown on NPCs 2026-03-13 18:54:18 -04:00
Kam ab60fdbd12 Fix Chained Ability Icons + Chained Ability Per Cooldown Config Options 2026-03-13 18:52:17 -04:00
Kam ac953685c8 Mob Spawner / Job Spawner Selection Fixes for Folder Support 2026-03-13 18:43:53 -04:00
Kam 16f0022505 1.11.1 2026-03-13 17:20:12 -04:00
bigguy345 956410c345 feat: implement IntelliJ-style weigher chain for autocomplete ranking
- Add 8 independent weigher classes (MatchQuality, MemberKind, ContextFit, UsageFrequency, ImportStatus, Deprecated, InheritanceDepth, Alphabetical)
- Replace fragile penalty-based scoring with composable weigher chain architecture
- Expand MemberKind to 11 tiers: enum_const > local > instance_field > instance_method > type_class > type_enum > type_interface > static_field > static_method > keyword > snippet
- Reorder weighers for optimal UX: imported always ranks above unimported regardless of usage
- Fix unimported class penalty bug (was being overwritten by calculateMatchScore)
- Implement DeprecatedWeigher (deprecated flag now scored)
- Mark addScoreBoost() @Deprecated in favor of weigher chain
- Add getInheritanceDepth() getter to AutocompleteItem
- Update JSAutocompleteProvider to use 8-weigher chain with InheritanceDepthWeigher
- Comprehensive test coverage: 127+ test methods across weigher unit tests and integration tests
- Matches IntelliJ IDEA's weigher chain pattern (battle-tested production architecture)
2026-03-13 23:00:46 +02:00
bigguy345 81b3d1c2d3 Fixed autocomplete item package color for interfaces/enums 2026-03-13 20:47:54 +02:00
bigguy345 f25b9164d0 Added parameter autocomplete coloring 2026-03-13 20:01:10 +02:00
bigguy345 c0a022c5b5 Tightened excluded range checks in receiver chain resolution (fixes stupid . in comments fkin up next line bug) 2026-03-13 19:49:30 +02:00
bigguy345 ce8c9b3b94 oh shit 2026-03-13 19:40:06 +02:00
bigguy345 b6e3ee8404 Umm one is enough 2026-03-13 18:34:09 +02:00
bigguy345 85d4bb2628 man get this old washed shit outta my face 2026-03-13 18:33:27 +02:00
bigguy345 82128ce318 Proper Hover Info data for generic classes with type params 2026-03-13 18:33:03 +02:00
bigguy345 390b3446a3 Merge remote-tracking branch 'origin/syntax-highlighter-unified' into syntax-highlighter-unified
# Conflicts:
#	src/main/java/noppes/npcs/client/gui/util/script/interpreter/type/TypeInfo.java
2026-03-13 18:30:09 +02:00
bigguy345 f66d2f0193 GenericContext overhaul, removed redundant TypeSubstitutor 2026-03-13 18:29:06 +02:00
bigguy345 53446e06c6 unified TypeInfo API access to it uses exposed TypeInfo members instead of inner raw Class reflection calls 2026-03-13 18:20:44 +02:00
bigguy345 691a7fb2c7 unified TypeInfo API access to it uses exposed TypeInfo members instead of inner raw Class reflection calls 2026-03-13 17:47:29 +02:00