Commit Graph
3336 Commits
Author SHA1 Message Date
zeng-github01 4e1b4dda58 resolve conflict 2026-03-11 09:45:38 +08:00
zeng-github01 9a07bb36a4 Support for loading quest data from legacy CustomNPCs formats (1.6.4) 2026-03-11 09:24:13 +08:00
Kam 8e9d2fedc5 Hitbox Fixes 2026-01-19 16:29:50 -05:00
Kam a1461665d1 Update api 2026-01-04 02:30:39 -05:00
Kam c5c35a1113 Update api 2026-01-04 02:10:58 -05:00
Kam 1eef2f871a Merge remote-tracking branch 'origin/claude/plan-market-updates-od0M1' into dev 2026-01-04 02:10:43 -05:00
Claude 47fc4ebcc1 Add comprehensive implementation plan for CNPC+ 1.11 Market Update
This plan covers three major features:
- Auction House: New Auctioneer NPC role with global auction system
- Currency System: VaultAPI integration for Bukkit hybrid servers
- Trader Enhancements: Stock/inventory system with reset timers

Includes detailed architecture, data structures, and implementation order.
2026-01-03 21:12:55 +00:00
Kam a0de82b8e4 Merge branch 'claude/fix-npc-spawn-biomes-hPE8Q' into dev 2026-01-03 15:55:31 -05:00
Kam c0f2846907 Update api 2026-01-03 01:23:56 -05:00
Kam 12696996a6 1.10.3 2026-01-03 01:23:45 -05:00
Claude f6114dfa5e Fix NPC biome spawn settings not persisting after editing
When users modified biomes, dimensions, or spawning options through the
sub-GUI dialogs, changes were only stored in client memory and never sent
to the server. This caused spawn configurations to appear correct in the
UI but fail to work after server restarts.

The closeSubGui() method now calls save() when SubGuiNpcBiomes,
SubGuiNpcDimensions, or SubGuiSpawningOptions dialogs close, ensuring
changes are immediately sent to the server via NaturalSpawnSavePacket.

Added @Override annotation for consistency with other GUI classes.
2026-01-02 09:50:28 +00:00
Kam 6cc78a62aa Merge branch 'claude/fix-bard-music-dialog-bug-Rm8DP' into dev 2026-01-02 00:09:38 -05:00
Kam cb0b18310a Merge remote-tracking branch 'origin/claude/fix-quest-cooldown-timer-hoXkh' into dev 2026-01-02 00:08:42 -05:00
Claude 1d191413fb Fix quest cooldown not working for MCCUSTOM and RLCUSTOM types
The canQuestBeAccepted() method was missing cases for MCCUSTOM and
RLCUSTOM repeat types, causing quests with custom cooldowns to become
permanently inaccessible after first completion. Added the missing
checks using quest.customCooldown for both MC ticks and real-life
milliseconds.
2026-01-02 03:58:52 +00:00
Claude f5deb8a823 Fix Bard music restarting/duplicating when opening dialogs
Two issues were causing the bug:
1. GuiDialogInteract.close() called stopAllSounds() unconditionally,
   which stopped Bard music even when the dialog had no sound or
   when a different Bard was playing nearby.

2. MusicController.stopMusic() didn't set playDelay, allowing Bards
   to immediately restart their music after dialog close.

Changes:
- MusicController.stopMusic() now sets playDelay=20 and clears entity
  reference to prevent immediate music restart
- Added MusicController.stopSound(key) to stop specific sounds
- Dialog GUIs now track their dialog sound and only stop that on close,
  preserving Bard music and other sounds
2026-01-02 03:54:19 +00:00
Kam 07a10b8414 Remove this 2026-01-01 22:35:32 -05:00
Kam e2291f8ccc Fix Debugging Error 2026-01-01 22:02:54 -05:00
Kam f19c53758e 1.10.3-beta 2026-01-01 21:47:17 -05:00
Claude 9b654621e8 Add attack speed check to NPC's attackEntityFrom before immunity check
The LivingAttackEvent handler was firing too late for NPCs because
EntityNPCInterface.attackEntityFrom() has its own immunity check that
runs BEFORE calling super (which fires LivingAttackEvent).

Now the attack speed bypass is checked directly in the NPC's
attackEntityFrom() method, before the immunity check at line 658.
2025-12-31 01:00:33 +00:00
Claude d06e680350 Fix attack speed formula to check elapsed time properly
Instead of blindly resetting hurtResistantTime for fast weapons, now
checks if enough time has elapsed based on the weapon's attackSpeed:
- timeElapsed = maxHurtResistantTime - hurtResistantTime
- Allow attack when: hurtResistantTime <= maxHurtResistantTime - attackSpeed

Example: attackSpeed=10, maxHurtResistantTime=20
- Allows attack when hurtResistantTime <= 10 (10 ticks elapsed)
2025-12-31 00:52:06 +00:00
Claude 185a8bc917 Move hurt resistant time handling from LivingHurtEvent to LivingAttackEvent
- Remove legacy attack speed handling from ServerEventsHandler.LivingHurtEvent
  (was setting hurtResistantTime AFTER immunity check, too late)
- Add proper handling in ScriptPlayerEventHandler.LivingAttackEvent
  (sets hurtResistantTime=0 BEFORE immunity check for fast weapons)
- For weapons with attackSpeed < 20, bypass invincibility frames to allow
  rapid attacks to land
2025-12-31 00:45:26 +00:00
Kam ce8e38b6bd Update ScriptPlayerEventHandler.java 2025-12-30 19:41:02 -05:00
Kam 592a910cbc Add some more Attack Speed Handling 2025-12-30 19:29:44 -05:00
Kam 8dad290486 Merge branch 'claude/fix-mount-movement-jitter-7JrfX' into dev 2025-12-30 18:21:38 -05:00
Claude de8c317023 Add mount edge case handling for dismount scenarios
- Player logout: Dismount from NPC mount before logout to prevent
  orphaned mount state (ServerTickHandler)
- Teleportation: Dismount before cross-dimension teleport to prevent
  mount being left behind in old dimension (NoppesUtilPlayer)
- Dead rider: Validate rider is alive, dismount dead/invalid riders
  to prevent stuck mount state (NPCMountUtil)
- Role disable: Dismount rider when mount role is disabled to prevent
  mounted player on non-mount NPC (RoleMount)
2025-12-30 23:20:54 +00:00
Claude 096c9b0a69 Fix mount movement jitter by following vanilla horse/boat sync pattern
- Remove all velocityChanged=true flags from mount movement code
  (NPCMountUtil, EntityNPCInterface, EntityNPCFlying)
- Make performMountedMovement physics server-side only like vanilla horse
- Remove syncMountedRiderVelocity method that forced rider velocity packets
- Fix ground movement to not reset motionY every tick
- Let Minecraft's entity tracker handle position sync naturally

The jitter was caused by S12PacketEntityVelocity being sent every tick,
which constantly reset client interpolation. Vanilla horses/boats never
set velocityChanged and rely on the entity tracker for smooth sync.
2025-12-30 23:06:16 +00:00
Claude 370abd2f94 Fix Player Data search functionality bugs
- Fix category search logic for Quest/Dialog/Transport tabs that was
  incorrectly checking selectedCategory.isEmpty() before filtering,
  which cleared the category list instead of filtering it
- Add resetScroll() calls to all search methods so scroll position
  resets when search results change
2025-12-30 23:04:32 +00:00
Kam f3d39abfaf Merge branch 'dev' 2025-12-30 17:50:36 -05:00
Kam de094ea0a2 1.10.3 Setting 2025-12-30 17:50:29 -05:00
Kam 2065d5dde5 Merge branch 'mount-movement-fix' into dev 2025-12-30 17:49:27 -05:00
PeTcHeNkA 63ca8da22c check: throw GradleException if api folder is not exist 2025-12-20 02:43:42 +03:00
somehussar e767f4f46c Fix Party Crash 2025-12-19 20:39:54 +01:00
bigguy345 2c91cd4286 oops 2025-12-15 17:46:46 +02:00
bigguy345 e5e897ab1e Completely remove CustomNPC-Plus/src/api submodule 2025-12-15 17:33:58 +02:00
bigguy345 c291ab174f Made npc left/right leg model access public 2025-12-14 13:36:58 +02:00
bigguy345 c1cd8b0386 public EntityCustomNpc npc field to ModelMPM 2025-12-14 13:36:37 +02:00
bigguy345 93e6a92b59 Made GuiNpcButtons with multiple displays i.e ("Hair","Eyes","Fur")
right clickable to select in reverse
2025-12-09 17:46:07 +02:00
bigguy345 ddee62f2ce API 2025-12-09 15:01:19 +02:00
bigguy345 7adbdd30e4 More GUI NPC rendering improvements 2025-12-09 15:01:01 +02:00
bigguy345 27de3c77a4 Hooked renderingEntityInGUI accordingly 2025-12-09 13:45:38 +02:00
bigguy345 00ea0200c4 Fixed GuiScrollWindow scrolling when a subgui is open 2025-12-09 13:45:07 +02:00
bigguy345 06483566cf Improved GuiTextureSelection 2025-12-09 13:44:42 +02:00
bigguy345 cca69d8e1d Added GUI NPC rendering utilities 2025-12-09 12:49:40 +02:00
bigguy345 0ef48c5477 Better fix for ESC closing all sub guis at once 2025-12-09 11:12:30 +02:00
bigguy345 1337aba841 Added GuiTextureSelection.setLocation 2025-12-09 11:11:32 +02:00
google-labs-jules[bot] 000cefdab9 Fix mount movement sync and speed issues
- Remove server-side check for setAIMoveSpeed to fix client prediction desync on ground mounts
- Increase air strafe factor for flying mounts to match ground speed feel
2025-12-06 01:27:27 +00:00
lonewolf8351 0b2bf5fd04 added attack speed parameter to linked Items 2025-12-03 13:44:56 -05:00
lonewolf8351 c3651fd6f7 Merge remote-tracking branch 'origin/dev' into dev 2025-12-03 13:43:33 -05:00
lonewolf8351 bdf3791e38 Added setHurtTime function to IEntityLivingBase 2025-12-03 13:43:11 -05:00
Kam ee413c31b9 Improve mount client sync and flight speed scaling 2025-11-13 19:54:10 -05:00