Commit Graph
544 Commits
Author SHA1 Message Date
Kam a325c5c618 Full Screen Directory Mode for Cloner Tab Handling 2026-02-04 12:34:26 -05:00
Kam 65e29e42dd Tab Handling GUI 2026-02-04 01:18:38 -05:00
Kam 769109d046 Fix Windup Ticks 0 not starting Abilities 2026-02-03 15:52:46 -05:00
Vidal 60b846b35e - Added onDamageTaken to Ability
- Reworked AbilityGuard
- Added AbilityOrbBarrage
- Updated translation
- Updated onDamageTaken method calls
2026-02-03 05:43:50 -03:00
Kam 1b8ad4dd90 Player Abilities 2026-01-30 05:01:54 -05:00
Kam e73054a529 Built In Animation System + Fixes to Defaults for Energy Projectile Abilities 2026-01-28 16:31:26 -05:00
Kam fe998ea31c Auction Blacklist System 2026-01-24 16:03:54 -05:00
Kam 3577701edf Auction Fixes + Auction API Hookup 2026-01-24 15:11:50 -05:00
Kam d1621d4368 Auction Fixes to Tooltips, Auction Command, Money Command 2026-01-24 03:24:57 -05:00
Kam 3e57b837aa Auction Fixes 2026-01-24 01:57:46 -05:00
Kam 5afa1c8959 Auction System Implementation 2026-01-23 21:53:12 -05:00
Kam a9b602713c Large Cleanup to Code Imports and Formatting 2026-01-22 23:07:38 -05:00
Kam 0f1a6028f3 Event Janino Script 2026-01-22 20:53:48 -05:00
Kam 923c84e3fe Cache Handle for O(1) lookups 2026-01-22 19:03:28 -05:00
bigguy345 dfcab1e413 Moved clear to ScriptHandler 2026-01-22 23:05:47 +02:00
bigguy345 13cb94d5e2 Forgot API ScriptHookController 2026-01-22 22:57:04 +02:00
Kam 19b01e2099 Compress Script Hooks and Context System 2026-01-22 14:27:48 -05:00
bigguy345 7050e9b7d4 Implemented Janino scripting for player events. via JaninoPlayerScript 2026-01-22 20:51:46 +02:00
bigguy345 d835d2acb0 Migrated all EffectScript.ScriptType hooks to EnumScriptType 2026-01-22 20:48:17 +02:00
bigguy345 50e9f1b3e5 HUGE IScriptHandlerPacket merge.
All ScriptHandlers that send packets now directly define their data through the ScriptHandler class itself, NOT through their own GuiScript extended class.
2026-01-22 20:05:07 +02:00
bigguy345 3f8373d76f Merge branch 'dev' into janino-scripts 2026-01-22 19:53:18 +02:00
Kam d0dc8a4578 Trader System + Stocks Implemented
- Removed Auction System Temporarily for Full Rebase
2026-01-22 12:38:56 -05:00
Kam 04e2a57cb4 Auction Merge 2026-01-20 21:07:18 -05:00
bigguy345 af62868387 1. JaninoHookResolver
2. Janino reflection based function calls like:

Color script = scriptHandler.callFunction("getColor", Color.class, ctx);

Compared to current:

Color script = scriptHandler.getScript().call(f -> f.getColor(ctx));
2026-01-19 03:26:02 +02:00
bigguy345 a032d24d65 Fixed crash 2026-01-19 03:18:41 +02:00
bigguy345 f5dbe19de2 New IScriptHandlerPacket:
- Defines the packet-backed script GUI contract used by GuiScriptInterface for “streamed” script loading/saving.

- Updated EffectScript, LinkedItemScript and RecipeScript to implement IScriptHandlerPacket

- Removed GuiScriptEffect, GuiScriptLinkedItem and GuiScriptRecipe as their functionality got replaced with new interface handled by GuiScriptInterface
2026-01-18 17:57:10 +02:00
bigguy345 eecb5b0b3b ScriptHandler refactor:
- ScriptHandler now holds a list of containers

- Delegated single container handling to SingleScriptHandler

IScriptHandler refactor:

- Moved ScriptContext/Hook logic to it

- More default methods + hooked them to GuIScriptInterface
2026-01-18 17:50:04 +02:00
bigguy345 86285ceff5 - New JaninoScriptHandler thats a concrete IScriptHandler impl and replaces JaninoScriptable
- Removed ScriptHandler based methods from JaninoScript
2026-01-18 03:26:31 +02:00
bigguy345 f829926f00 New ScriptHandler, which is an abstract IScriptHandler implementation 2026-01-18 03:19:30 +02:00
bigguy345 cda43fe67a Defaulted IScriptHandler methods to clean up duplicate code across implementations 2026-01-18 03:05:02 +02:00
bigguy345 68bc02a5d4 Removed SingleScriptHandler 2026-01-18 03:01:55 +02:00
bigguy345 f6e589ac67 temp SingleScriptHandlers tuff 2026-01-15 04:13:59 +02:00
bigguy345 d17534120b Merged GuiJaninoScript with GuiScriptInterface and moved usages 2026-01-14 03:41:24 +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 73db727c47 Deleagted all ScriptContainer NBT based creation to IScriptUnit.createFromNBT 2026-01-13 22:16:51 +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 60af203165 Renamed to moveFromGlobalToLocal 2026-01-05 20:32:18 +02:00
bigguy345 e8ef60deb4 Important IAnimation takeTasksFrom global instance in AnimationController to local instance in entity AnimationData 2026-01-05 20:25:34 +02:00
bigguy345 db0aa94a3a IAnimation instead of Animation 2026-01-05 20:17:55 +02:00
bigguy345 eb660b38ae Added IAnimation consumers to API 2026-01-05 17:14:45 +02:00
bigguy345 68681931f8 Animation Data Store (for cross event/frame data handling) 2026-01-05 16:53:58 +02:00
bigguy345 a33acee117 Added Animation task consumers (much better than animation events) 2026-01-05 16:49:48 +02:00
Kam d657bab73c Harden auction display and trader stock init 2026-01-04 15:21:11 -05:00
Claude 740c2852e5 Refactor auction system: consolidate controllers, add lang keys, remove categories
- Consolidate AuctionLogger and AuctionNotificationController into AuctionController
- Add inline logging and notification methods to AuctionController
- Add comprehensive LANG keys for all auction GUI strings
- Update EnumAuctionSort and EnumAuctionDuration to use lang keys
- Remove category filtering system (EnumAuctionCategory deleted)
- Update AuctionFilter to remove category references
- Update GuiAuction and all sub-GUIs to use StatCollector.translateToLocal()
- Update AuctionListing to remove category field and NBT serialization
2026-01-04 10:26:56 +00:00
Claude d09c6b0c81 Add auction filtering and sorting system
New files:
- EnumAuctionSort: Sorting options (price, time, name, bids, etc.)
- AuctionFilter: Search/filter criteria with builder pattern
- AuctionDataPacket: Large packet for server->client listing data

AuctionController changes:
- getFilteredListings(): Main filtering/pagination method
- sortListings(): Comprehensive sorting by various criteria
- quickSearch(): Convenience method for simple searches
- FilterResult: Pagination result container

AuctionListing changes:
- Added bidCount field with NBT persistence
- Added creationTime alias methods

AuctionActionPacket changes:
- QueryListings: Filter-based search
- QueryMyListings: Player's own listings
- QueryMyBids: Player's active bids
- QueryClaimable: Items ready to claim

NoppesUtil changes:
- Auction data storage and IAuctionData interface
- Client-side data handling for GUI integration
2026-01-04 09:33:29 +00:00
Claude c1dc58ae54 Implement Phase 4: Auction House core system
- Add auction enums:
  - EnumAuctionDuration.java - configurable auction durations (SHORT/MEDIUM/LONG/VERY_LONG)
  - EnumAuctionStatus.java - listing statuses (ACTIVE/SOLD/EXPIRED/CANCELLED/CLAIMED)
  - EnumAuctionCategory.java - auto-categorization of items for browsing

- Add AuctionListing.java data class:
  - Complete auction listing with seller/bidder tracking
  - Pricing with starting price, buyout price, current bid
  - Timing with snipe protection (extends TO X minutes, not by)
  - Item validation (checks trade restrictions and blacklist)
  - Previous bidder tracking for refund notifications
  - NBT serialization for persistence

- Add AuctionController.java:
  - Global auction house management
  - Create/cancel/finalize listings
  - Bid placement with automatic outbid refunds via claims system
  - Buyout support with immediate sale
  - Claim system for sellers (proceeds) and buyers (items)
  - Search and filter by category/name
  - Periodic expiration processing
  - Persistence via auctions.dat

- Add RoleAuctioneer.java NPC role:
  - Configurable tabs (listings, my listings, my bids, claims)
  - Configurable permissions (create, bid, buyout)
  - Custom welcome/disabled messages
  - Opens auction GUI on interaction

- Update ConfigMarket.java:
  - Duration-specific settings (hours and fees)
  - Removed deprecated AvailableDurations string

- Update EnumRoleType.java - add Auctioneer
- Update EnumGuiType.java - add PlayerAuction, SetupAuctioneer
- Update DataAdvanced.java - handle Auctioneer role creation
- Update CustomNpcs.java - initialize AuctionController
2026-01-04 08:43:55 +00:00
Claude c9f77bed05 Implement Phase 2: Trader Enhancements with stock and currency system
- Add EnumStockReset.java for stock reset timing types
  - NONE, MCDAILY, MCWEEKLY, MCCUSTOM (MC time)
  - RLDAILY, RLWEEKLY, RLCUSTOM (real time)
  - Helper methods for interval calculation and display formatting

- Add TraderStock.java for stock management
  - Per-slot stock limits with -1 for unlimited
  - Per-player vs per-server stock tracking modes
  - Automatic reset timer with configurable intervals
  - PlayerTraderStock inner class for per-player tracking
  - NBT serialization for persistence

- Modify RoleTrader.java to support stock and currency
  - Add TraderStock instance for stock management
  - Add useCurrency flag and slotPrices array for virtual currency
  - Auto-check for stock reset on interact()
  - Helper methods: hasStock(), getAvailableStock(), consumeStock()
  - Helper methods: getSlotPrice(), setSlotPrice(), hasSlotPrice()
  - getTimeUntilResetFormatted() for GUI display

- Modify ContainerNPCTrader.java for transactions
  - Check stock availability before purchase
  - Handle virtual currency purchases via CurrencyController
  - Fall back to item-based currency when useCurrency disabled
  - Consume stock after successful purchase
2026-01-04 08:29:03 +00:00