Sueta

kkfish

1.7.11

The new generation fish plugin,like Stardew Valley Fishing

·Plugin
  1. 1.7.11latestkkfish 1.7.11Aug 23, 2026

    1.7.11

    fix:
    Fixed SQLite JDBC driver loading conflict with other plugins (e.g., nightcore) — now loaded via DependencyManager at runtime
    115 downloads
  2. 1.7.10kkfish 1.7.10Aug 14, 2026

    1.7.10

    fix:
    Fixed the CraftEngine compatibility bug (the previous fix was not complete)
    Optimized database performance and asynchronous processing
    added:
    Optimized the configuration structure and added the config-version setting, enabling automatic config upgrades starting from 1.7.10
    32 downloads
  3. 1.7.9kkfish 1.7.9Aug 13, 2026

    1.7.9

    fix:
    fix craftengine compatible bug
    fix the bug where fish and other non-rod items in config could be used as fishing rods
    fix some 1.12-1.13 compatibility bugs
    15 downloads
  4. 1.7.8kkfish 1.7.8Aug 7, 2026

    1.7.8

    add:
    When vanilla fishing is disabled, vanilla mode is now ignored for all players - everyone fishes in plugin mode
    Added admin command /kf toggle <player|-all> plugin to force players back to plugin fishing mode
    remove:
    Removed unused kkfish-folia / kkfish-spigot modules and legacy files
    41 downloads
  5. 1.7.7kkfish 1.7.7Aug 5, 2026

    1.7.7

    update:
    Updated XSeries dependency to 13.8.0
    Added PlaceholderAPI support, papilist:
    - %kkfish_fish_caught_types% - types of fish caught
    - %kkfish_fish_max_size% - largest fish size
    - %kkfish_fishing_level% - fishing level (AuraSkills)
    - %kkfish_fishing_attempts% - total fishing attempts
    - %kkfish_fishing_fails% - failed fishing attempts
    - %kkfish_fishing_successes% - successful fishing attempts
    - %kkfish_fishing_success_rate% - success rate
    - %kkfish_fish_caught_<fishKey>% - catches of a specific fish
    - %kkfish_fish_caught_<fishKey>_maxsize% - max size of a specific fish
    - %kkfish_fish_level_<levelKey>_caught% - catches of a specific level (e.g. legendary)
    - %kkfish_fish_most_valuable% - most valuable fish value
    - %kkfish_fish_hook_material% - current hook material
    - %kkfish_fishing_time% - total fishing time (seconds)
    21 downloads
  6. 1.7.6kkfish 1.7.6Aug 3, 2026

    1.7.6

    fix:
    Fixed some Folia compatibility issues
    20 downloads
  7. 1.7.5kkfish 1.7.5Aug 2, 2026
    12 downloads
  8. 1.7.4kkfish 1.7.4Jul 26, 2026
    23 downloads
  9. 1.7.3kkfish 1.7.3Jul 9, 2026

    1.7.3

    Fix:
    Fixed some fishing charge prompts still showing Chinese after switching the plugin language to English bug
    Fixed players using the default language not following the plugin language setting bug
    25 downloads
  10. 1.7.2kkfish 1.7.2Jul 5, 2026

    1.7.2

    Fix:
    Fixed dead entity passed to cleanup when fishing session ends bug
    Fixed server crash on database connection failure bug
    Fixed background timer not stopping after plugin disable bug
    Fixed lava and void bite delay miscalculation bug
    Fixed players without permission still being able to fish bug
    Fixed crash when saving hook material and database is down bug
    Improve:
    Cached hook config queries
    Pre-generated GUI item templates for hook material and fish dex menus
    17 downloads
  11. 1.7.1kkfish 1.7.1Jun 18, 2026
    Updated the xseries dependency version
    36 downloads
  12. 1.7.0kkfish 1.7.0Jun 16, 2026

    1.7.0

    Refactor:
    Introduced RootService as composition root with explicit startup/shutdown order
    Introduced PlayerContext system unifying 18 scattered state maps with lifecycle state machine
    Introduced EventBus domain event system decoupling MinigameManager cross-domain calls
    Extracted infrastructure services: VersionService, EconomyService, SeasonsService, NmsAdapter, MaterialResolver
    Split GameSession into FishSelector, FishMovementSimulator, MinigameRenderer, FishValueCalculator
    Split Cmd into SellCommandHandler, GiveCommandHandler, CompeteCommandHandler, ConfigCommandHandler, AdminCommandHandler
    Split Fish into ChargeProgressTracker, HookProjectile, BiteCheckScheduler, FishItemFactory, FishAnimationService, FishBroadcastService
    Split GUI into GUICommons, HookMaterialGUIHandler, FishDexGUIHandler, CompetitionGUIHandler
    Fix:
    Fixed startup NPE caused by MessageManager not initialized before Config
    Fixed Compete init NPE caused by scheduler not injected before manager construction
    Fixed BukkitRunnable cancel throwing "Not scheduled yet" on scheduler fallback path
    Fixed all log language keys silently falling back to hardcoded defaults
    Fixed hardcoded log messages across the codebase
    Fixed GUI permission check log output in non-debug mode
    Improve:
    Removed 9 empty dead code files causing cross-package name confusion
    Removed ~1000 lines of dead code from GUI
    Fixed XSeries rule violations in EntityBatchProcessor
    Cleaned duplicate imports
    9 downloads
  13. 1.6.1kkfish 1.6.1Jun 4, 2026

    1.6.1

    Fix:
    Fixed hook float task leaks on session end
    Fixed rod charge-speed and float-area-size having no gameplay effect
    Fixed lava and void minigame difficulty multipliers not applied
    Fixed off-hand bait never consumed, bait detection and fish record parsing dependent on lore text
    Fixed minigame fish selection ignoring water type pools
    Fixed non-sell GUI empty slots accepting items via shift-click
    Fixed sell GUI drag events blocked for all GUIs
    Fixed Cmd add command feedback using string concatenation instead of format placeholders
    Fixed i18n formatting characters hardcoded in fish lore and floating text
    Fixed rod template fallback hardcoded Chinese
    Fixed MySQL migration running SQLite-specific queries before dialect check
    Fixed Math.random() scattered across 10 locations in game logic
    Fixed Material enum direct usage violating cross-version rules
    Fixed pools.yml referencing fish not defined in fish.yml
    Fixed config comments incorrect or incomplete (charge-speed, escape)
    Removed dead code: getRankPrefix(), ~75 lines of lore text parsing, duplicate sell deposit, unused config values
    Add:
    Added ChargeSessionData for per-session rod attribute storage
    Added cross-version NBT read helpers for bait and fish item identification
    Added 7 i18n keys for fish lore formatting and rod template
    Added Folia/Foila compatibility with dedicated kkfish-folia.jar build
    Optimize:
    Optimized DB migration to use dialect-specific column detection
    Optimized bait detection and fish record parsing from lore iteration to single NBT reads
    12 downloads
  14. 1.6.0kkfish 1.6.0May 24, 2026

    1.6.0

    Fix:
    Fixed fish item lore showing raw rarity level (e.g. "epic:90") instead of configured display name (e.g. "史诗")
    Fixed 100% charge being treated as overcharge (throw power became 0)
    Fixed hook floating effect task never terminating, causing task leaks
    Fixed hook trajectory task not tracked, unable to cancel on session end
    Fixed Particle API incompatibility on 1.21+ (extra parameter type mismatch)
    Fixed dangerZone array out of bounds in minigame (index 10 on size-10 array)
    Fixed severe performance issue: rod name parsed every tick in minigame
    Fixed duplicate session check missing in 2/3-argument startMinigame
    Fixed OP privilege escalation without try-finally in GUIAction
    Fixed fish selling losing items when player inventory is full
    Fixed ClassCastException from database Number types in GUI stats
    Fixed MySQL incompatibility: INSERT OR REPLACE and AUTOINCREMENT syntax
    Fixed getConnection() returning null causing NullPointerException (19 call sites)
    Fixed sellAllFish not collecting fish UUIDs for database cleanup
    Fixed clearAllCache clearing all players' cache on any player quit
    Fixed isVoidLocation always returning false, void fishing completely broken
    Fixed cleanupAndAnnounce callable twice, causing duplicate rewards
    Fixed PointsOnlyCompetition giving 1.0 points for fish not in fishList
    Fixed reflection method lookup every tick (now cached as static field)
    Fixed cross-world distance() call throwing IllegalArgumentException
    Fixed fishLevel.split NPE when fishLevel is null
    Fixed hookMaterial.toLowerCase NPE when database returns null
    Fixed isHookPassableBlock using hardcoded strings instead of Set lookup
    Fixed shared StringBuilder/Vector/Location instance fields causing thread safety issues
    Fixed new Random() created frequently instead of reusing instance field
    Fixed charge tick sound never playing due to millisecond precision mismatch
    Fixed checkAndConsumeBait setting null instead of AIR for empty offhand
    Fixed fishSize/maxSize division by zero when maxSize is 0
    Fixed rare fish getting double bonus (10% forced + rareFishBonus)
    Fixed invincibility period only increasing progress, never decreasing
    Fixed minigame run() without exception protection, leaving zombie sessions
    Fixed displayGameUI dead code with identical if-else branches
    Fixed player offline not handled during minigame, causing exceptions
    Fixed getRodNameByPlayer returning null instead of default "wood"
    Fixed duplicate actualFishValue declaration in inner class
    Fixed HashMap concurrency issues in GUI (6 maps changed to ConcurrentHashMap)
    Fixed GUIType.valueOf() throwing uncaught IllegalArgumentException
    Fixed direct Material enum usage in GUI violating XSeries rules (14 places)
    Fixed itemsPerPage inconsistency between GUI methods (36 vs 28)
    Fixed sellFishItem using unnecessary reflection for PDC access
    Fixed sellFishItem returning 1 for item rewards without depositing Vault value
    Fixed displayNameToHookNameMap not updating on config reload
    Fixed e.printStackTrace() violating logging rules
    Fixed onInventoryClose clearing search keywords for all GUI types
    Fixed SlotMapping getBorderSlotCount wrong calculation for 27-slot GUI
    Fixed RewardPreview isItemDisplaySlot range too small (27 instead of 54)
    Fixed GUI_SIZE_6 = 6 not being a valid inventory size (changed to 54)
    Fixed SQL injection risk from columnName concatenation (added whitelist)
    Fixed logFishing/updatePlayerStats using connection field instead of getConnection()
    Fixed cache returning mutable list reference allowing external pollution
    Fixed cache cleanup running every write instead of every 100 writes
    Fixed updatePlayerStats using two database round trips instead of one
    Fixed getConfigurationSection() NPE in Config (5 places)
    Fixed non-debug AuraSkills log output in production
    Fixed Double.parseDouble without exception handling
    Fixed isDebugMode/setDebugMode config path inconsistency
    Fixed dead code in ensureFishAnimationSubConfigs
    Fixed duplicated fish filtering logic in getAvailableFish/getAvailableFishFromPool
    Fixed Material.FISHING_ROD direct enum usage in Config
    Fixed parseMaterial returning null without warning in ItemValue
    Fixed Y-axis movement not restricted during fishing
    Fixed durability calculation overflow when maxSingleLoss < baseLoss
    Fixed getRodCurrentDurability missing rodType null check
    Fixed hook Y velocity unlimited descent in water mechanic
    Fixed lava mechanic missing Y<=0 boundary check
    Fixed lava/void hook messages using wrong language key (hook_in_water)
    Fixed hasEquipmentEffect based on Lore text matching, exploitable by players
    Fixed Compete shared mutable StringBuilder/ArrayList fields
    Fixed Compete containsKey+put TOCTOU race condition
    Fixed scheduleRecurring array index out of bounds on malformed config
    Fixed competition notification tasks not tracked, can't be cancelled
    Fixed scheduledTasks memory leak (completed tasks never removed)
    Fixed CompetitionData non-atomic operations on counters
    Fixed AmountCompetition/SingleValueCompetition/TotalValueCompetition not checking fishList filter
    Fixed PointsOnlyCompetition value double-counting in point calculation
    Fixed BarColor/BarStyle parse errors silently swallowed without warning
    Fixed hardcoded Chinese string in Cmd instead of MessageManager
    Fixed getFishValueFromItem querying database every call without cache
    Fixed getItemValue() null check missing in Cmd
    Fixed sellAllFish item rewards given multiple times for stacked items
    Fixed setFishUUIDString using unnecessary reflection for PDC
    Fixed Material.matchMaterial() in Cmd violating XSeries rules
    Fixed addGlowEffect empty method and dead guiCache code removed
    Add:
    Added fishList filter check to AmountCompetition, SingleValueCompetition, TotalValueCompetition
    Added clearPlayerCache method to DB for single-player cache clearing
    Added hook_in_lava and hook_in_void language keys
    Added competition_invalid_duration language key
    Added CompetitionUtils.formatDuration shared utility
    Added columnName whitelist validation in DB
    Added fishValueCache in Cmd for database query optimization
    32 downloads
  15. 1.5.1kkfish 1.5.1May 23, 2026

    1.5.1

    Fix:
    Fixed fish broadcast displaying config base value instead of actual calculated value
    Fixed fish broadcast value not matching item displayed value (random fluctuation seed mismatch)
    Fixed hook GUI purchase doing nothing on click
    Fixed hook GUI showing purchase price for players who already have permission
    Fixed hook ID resolution failing after pagination
    Add:
    Added i18n keys for hook purchase feedback
    14 downloads
  16. 1.5.0kkfish 1.5.0May 22, 2026

    1.5.0

    Add:
    Added lava and void fishing with strategy pattern, including new config sections lava-fishing.*, void-fishing.*, styles.* and independent pools.yml
    Added auto-complete feature for missing config defaults (broadcast, fish-animation, pools)
    Fix:
    Fixed double event registration causing every Fishing handler to fire twice
    Fixed checkRodDurability always returned true (broken rods could still start charging)
    Fixed fragile string comparison Action.name().contains("RIGHT_CLICK") replaced with enum equality
    Fixed rod durability precision loss by storing remaining durability in PDC
    Fixed levelName.contains("") always true causing incorrect rarity display in broadcasts
    Fixed duplicate 16-entry block blacklist extracted to shared method
    Fixed EntityBatchProcessor never flushed (added 20-tick timer)
    Fixed empty catch blocks (particle spawn failures now logged)
    Fixed entity right-click swallowed mini-game green bar clicks — added PlayerInteractEntityEvent handler
    Removed unused PlayerChatEvent import
    Change:
    Removed dead config nodes (13 entries), 6 unimplemented sound sections, 3 dead getters
    Aligned 14 code defaults with config.yml (trigger-mode, seasonal.enabled, increase-speed, etc.)
    18 downloads
  17. 1.4.0kkfish 1.4.0Mar 24, 2026
    115 downloads
  18. 1.3.7kkfish 1.3.7Mar 17, 2026
    Add:
    Added commands to switch between vanilla fishing and plugin fishing(It can be configured whether the original fishing is able to catch custom items or just the original ones.The prerequisite for switching is that the current world is on the whitelist)
    Added automatic language file completion feature, which will use English as the template to fill in missing language keys (automatically runs language completion when the plugin starts and reloads)
    17 downloads
  19. 1.3.6.3kkfish 1.3.6.3Mar 14, 2026
    Tip: in message config add fish_caught_broadcast: "§b[Fishing] %player% caught a %size% %rarity% fish %fish%, worth %value%!\ Fix
    Fix cant sell bug
    21 downloads
  20. 1.3.6.1kkfish 1.3.6.1Mar 4, 2026
    Tip
    It is recommended to regenerate the following configuration files as their content has been updated:
    competition_category.yml (under GUI configuration directory) reward_preview.yml (under GUI configuration directory) All language configuration files Fix
    Resolved the issue of hard-coded Chinese text that could not be localized (e.g., "Durability" and rare fish catch chat notifications)
    Add
    Added a global toggle for the economy system: when set to false, all KKfish-related buying and selling functions will be disabled
    Added individual enable/disable switches for competitions: you can now turn off specific competitions independently (e.g., the enabled: true/false parameter in weekly_amount_competition and other competition configurations)
    24 downloads
  21. 1.3.3kkfish 1.3.3Mar 3, 2026
    Fix:
    Fix know bug
    Add:
    Added nbt-api to handle NBT content
    25 downloads
  22. 1.3.2kkfish 1.3.2Feb 6, 2026
    Fix
    fix hook cant sel bug
    fix gui placeholder cant edit bug
    57 downloads
  23. 1.3.0kkfish 1.3.0Feb 1, 2026
    Fix
    Optimized the logic for fish value calculation
    Fixed the bug where some configurations were missing in the default config
    Fixed the UUID detection bug for sell
    Add
    Added support for more versions. Theoretical: 1.12-latest, Tested: 1.12, 1.21
    23 downloads
  24. 1.0.9.1kkfish 1.0.9.1Nov 10, 2025
    1.0.9updata - 大修复版本 原语言太广,导致制作时期需要修改很多,所以将语言改成只有zh_cn,en_us,其余语言就需要社区帮助了:( 调整了钓鱼成功后获得鱼的随机逻辑(原版为平等随机,现在为: - 为每种鱼根据稀有度分配权重 - 实现加权随机选择算法 添加了可自定义的物品简介 修改了钓鱼成功后的动画,让其更符合星露谷的样子(ps:其实是不小心删了,没备份,解包后改不明白,只好重写了) 修复了如果在y大于水面的时候钓鱼成功后的鱼动画会钓到脚下而不是头上 修复了测试时期的鱼竿强制附魔代码未删除的bug 修复了一些debug在非debug模式也会显示的bug 修复有部分gui的物品没有在语言文件导致英文情况下会有中文的bug 修复hookgui的上一页和点击刷新都始终是中文(没有对应的语言键位) 修复鱼钩简介状态,图鉴gui里的物品简介,比赛gui的比赛奖励gui的“玩家”在语言文件中没有对应语言键名的bug - 1.0.9.1 优化了鱼动画实体卡顿bug 修复有了自定义模板后所有鱼都不能出售的bug (改成根据uuid记录价格,如果卖了就清除记录) 增加了钓鱼的难度 1.0.8.1以下更新至1.0.9以上需要给fish.yml的每一条鱼尾部添加 template: 不然会只显示一个uuid
    52 downloads
  25. 1.0.7.1kkfish 1.0.7.1Oct 15, 2025
    添加了各种粒子特效和音效的美化 添加了钓上鱼后的小动画 支持自定义鱼钩了(( 修复了有部分gui物品的简介或者名字会有前缀的bug 修复了没有auraskill也会加载相关功能导致count load的bug 1.0.6 Updata - 1.修复了季节获取失败的bug - 2.修复了更新获取显示的却是当前版本的bug - 3.修复了鱼钩数据库失效的bug - 4.添加了/kf add fish\rods\baits name 将当前手上的物品添加到配置(包括nbt)的功能,变相支持itemsadder等自定义材质\模型插件 1.0.5 更新: - 1.添加了竞赛模块。免费玩家最多可以享受 5 场自定义比赛,而付费用户则没有限制。 -阿拉伯数字。优化了 GUI。 - 3.免费版限制改为:20条鱼、10根鱼竿、10个鱼饵、5个比赛。 修复了已知问题。
    47 downloads

Similar projects

Plugin →