### Save-All Command Without Fabric-API Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the saving of runtime dimensions using the `/save-all` command without the installation of the `fabric-api` mod. ```fuji - Module: world - Action: **Issue the `/save-all` command without the installation of `fabric-api` mod.** - Target: The runtime dimensions should be saved. ``` -------------------------------- ### Production Work and Hopper Mixin Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the functionality of the chunk iterator and hopper mixin when creating a new production work and starting the sample. ```fuji - Module: works - Action: **Create a new production work and start the sample.** - Target: See if the chunk iterator works. - Target: See if the hopper mixin works. ``` -------------------------------- ### Core and Utility Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for core functionalities, command warmups, death logging, and system message handling. ```java io.github.sakurawald.fuji.module.initializer.command_warmup.CommandWarmupInitializer io.github.sakurawald.fuji.module.initializer.core.CoreInitializer io.github.sakurawald.fuji.module.initializer.deathlog.DeathLogInitializer io.github.sakurawald.fuji.module.initializer.system_message.SystemMessageInitializer ``` -------------------------------- ### Core Module Runtime Environments Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Details the core module's consideration of different runtime environments, including Fabric and Neo-Forge (with Sinytra Connector), hybrid servers, and GraalVM native images, assessing compatibility and potential reflection issues. ```java // Test Case: Consider the possible runtime environments. // Target: The fabric server-side environment. // Target: The fabric client-side environment. // Target: The neo-forge server-side environment. (With `sinytra-connector` mod) // Target: The neo-forge client-side environment. (With `sinytra-connector` mod) // Target: The hybrid server (forge+bukkit) with `sinytra-connector` mod // Target: The GraalVM native image. (Which invalidates the reflection) ``` -------------------------------- ### Mixin Extras - ModifyExpressionValue Example Source: https://github.com/sakurawald/fuji/blob/dev/RESOURCE.md Demonstrates how to use ModifyExpressionValue from MixinExtras to alter the value of an expression within a method. This is useful for conditional logic or dynamic value changes. ```java import org.spongepowered.asm.mixin.injection.ModifyExpressionValue; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; public abstract class ExampleMixin { @ModifyExpressionValue(method = "someMethod", at = @At("STORE")) private int modifyValue(int originalValue) { // Modify the original value here return originalValue * 2; } } ``` -------------------------------- ### General Module Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for various general modules of the Fuji project, covering features like economy, heads, homes, jails, kits, language settings, leaderboards, MOTD, multipliers, nametags, placeholders, predicates, profilers, PvP, ranks, RTP, sitting, skins, and tab lists. ```java io.github.sakurawald.fuji.module.initializer.economy.EconomyInitializer io.github.sakurawald.fuji.module.initializer.fuji.FujiInitializer io.github.sakurawald.fuji.module.initializer.functional.FunctionalInitializer io.github.sakurawald.fuji.module.initializer.head.HeadInitializer io.github.sakurawald.fuji.module.initializer.home.HomeInitializer io.github.sakurawald.fuji.module.initializer.jail.JailInitializer io.github.sakurawald.fuji.module.initializer.kit.KitInitializer io.github.sakurawald.fuji.module.initializer.language.LanguageInitializer io.github.sakurawald.fuji.module.initializer.leaderboard.LeaderBoardInitializer io.github.sakurawald.fuji.module.initializer.motd.MotdInitializer io.github.sakurawald.fuji.module.initializer.multiplier.MultiplierInitializer io.github.sakurawald.fuji.module.initializer.nametag.NametagInitializer io.github.sakurawald.fuji.module.initializer.placeholder.PlaceholderInitializer io.github.sakurawald.fuji.module.initializer.predicate.PredicateInitializer io.github.sakurawald.fuji.module.initializer.profiler.ProfilerInitializer io.github.sakurawald.fuji.module.initializer.pvp.PvpInitializer io.github.sakurawald.fuji.module.initializer.rank.RankInitializer io.github.sakurawald.fuji.module.initializer.rtp.RtpInitializer io.github.sakurawald.fuji.module.initializer.sit.SitInitializer io.github.sakurawald.fuji.module.initializer.skin.SkinInitializer io.github.sakurawald.fuji.module.initializer.tab.TabListInitializer io.github.sakurawald.fuji.module.initializer.teleport_warmup.TeleportWarmupInitializer ``` -------------------------------- ### Create and Give Kit Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the creation of a new kit using the `/kit editor` command and verifies that items are inserted into the proper slots when giving the kit with `/kit give`. ```fuji - Module: kit - Action: **Create a new kit using `/kit editor` command.** - Target: See if the `kit editor` works. - Module: kit - Action: **Give the new kit using `/kit give` command.** - Target: See if the items is inserted in the proper slots. (Note that the player in creative mode can always pick up the same items even their inventory is full.) ``` -------------------------------- ### Gameplay Module Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for gameplay-related modules, including enhancements for carpet features like better information display and fake player management, as well as multi-obsidian platform creation. ```java io.github.sakurawald.fuji.module.initializer.gameplay.carpet.better_info.BetterInfoInitializer io.github.sakurawald.fuji.module.initializer.gameplay.carpet.fake_player_manager.FakePlayerManagerInitializer io.github.sakurawald.fuji.module.initializer.gameplay.multi_obsidian_platform.MultiObsidianPlatformInitializer ``` -------------------------------- ### Command Toolbox Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt A comprehensive set of initializers for various utility commands grouped under the 'toolbox' category. This includes commands for bed interaction, burning, compass usage, extinguishing, feeding, flying, freezing, glowing, god mode, hats, healing, help requests, jumping, lore manipulation, item duplication, finding nearby players, nicknames, pinging, real name display, repair, and replying. ```java io.github.sakurawald.fuji.module.initializer.command_toolbox.bed.BedInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.burn.BurnInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.compass.CompassInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.extinguish.ExtinguishInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.feed.FeedInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.fly.FlyInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.freeze.FreezeInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.glow.GlowInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.god.GodInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.hat.HatInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.heal.HealInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.help_op.HelpOpInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.jump.JumpInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.lore.LoreInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.more.MoreInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.near.NearInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.nickname.NicknameInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.ping.PingInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.realname.RealnameInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.repair.RepairInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.reply.ReplyInitializer ``` -------------------------------- ### Command Menu Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for command menus, providing a user interface for selecting and executing commands. ```java io.github.sakurawald.fuji.module.initializer.command_menu.CommandMenuInitializer ``` -------------------------------- ### Command Advice Module Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the command advice module, specifically the `/say hi` command and its cancellation via the `/send-broadcast` command. ```java // Test Case: Issue `/say hi` command. // Target: The command should be cancelled with the `/send-broadcast` command. ``` -------------------------------- ### Command Toolbox Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for commands related to various functionalities like rules, seen players, speed adjustments, suicide commands, top lists, teleportation, and trash cans. ```java io.github.sakurawald.fuji.module.initializer.command_toolbox.rules.RulesInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.seen.SeenInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.speed.SpeedInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.suicide.SuicideInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.top.TopInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.tphere.TphereInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.tppos.TpposInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.trashcan.TrashCanInitializer io.github.sakurawald.fuji.module.initializer.command_toolbox.warp.WarpInitializer ``` -------------------------------- ### Core Module Documentation Parsing and Highlighting Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the core module's text parser and URL highlighter for documentation, ensuring proper parsing of text from earliest to latest versions, correct URL highlighting, and handling of special characters like ''. ```java // Test Case: Issue `/fuji`, and see the `document of afk module`, the `details of run module` and the `details of skin` module. // Target: The text parser should parse the text properly from the earliest version to the latest version. // Target: The URL highlighter should work properly. // Target: Ensure the `` doesn't break the style of texts. ``` -------------------------------- ### Command Advice Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for the command advice feature, which likely provides suggestions or help for commands. ```java io.github.sakurawald.fuji.module.initializer.command_advice.CommandAdviceInitializer ``` -------------------------------- ### Command Alias Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for managing command aliases, allowing users to create custom shortcuts for commands. ```java io.github.sakurawald.fuji.module.initializer.command_alias.CommandAliasInitializer ``` -------------------------------- ### Command Permission Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for managing command permissions, controlling which players can execute specific commands. ```java io.github.sakurawald.fuji.module.initializer.command_permission.CommandPermissionInitializer ``` -------------------------------- ### Command Rewrite Module Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the `command_rewrite` module by issuing the `/home` command and verifying it is rewritten to `/home tp default`. ```java // Test Case: Issue `/home` command. // Target: It should be rewrite to `/home tp default` command. ``` -------------------------------- ### List Command Tree of a Normal User Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the proper handling of command permissions by listing the command tree accessible to a normal user. ```fuji - Module: core - Action: **List the command tree of a normal user.** - Target: The command permissions should be handled properly. ``` -------------------------------- ### Command Interactive Module Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the command interactive module with signed and unsigned argument types, using the `/back` and `/say hi` commands respectively, when the `command_warmup` module is enabled. Also tests client-side signature validation in online-mode. ```java // Test Case: Enable `command_warmup` module, issue `/back` command. // Target: It should work with un-signed argument type. // Test Case: Enable `command_warmup` module, issue `/say hi` command. // Target: It should work with signed argument type. // Test Case: Test the `command_interactive` module in `online-mode` server. // Target: The packet should not break the client-side signature validation. ``` -------------------------------- ### Command Bundle Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for command bundles, which likely group multiple commands together for easier management or execution. ```java io.github.sakurawald.fuji.module.initializer.command_bundle.CommandBundleInitializer ``` -------------------------------- ### Core Module Command Suggestion Optimizer Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the command suggestion optimizer in the core module, verifying its functionality with commands like `/when-online ...` and `/json put ...`. ```java // Test Case: Issue `/when-online ...` and `/json put ...` commands. // Target: The command suggestion optimizer should work fine. ``` -------------------------------- ### Command Bundle Module Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the command bundle module's ability to register and unregister commands on the fly, using commands like `/reload`, `/fuji reload`, `/fuji inspect fuji-commands`, and `/command-bundle list`. ```java // Test Case: Issue `/reload`, `/fuji reload`, `/fuji inspect fuji-commands` and `/command-bundle list` // Target: The bundle commands should be able to register and un-register on the fly. ``` -------------------------------- ### Chat Management Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt A collection of initializers for various chat-related functionalities, including display, history, mentions, replacements, spying, styling, and triggers. ```java io.github.sakurawald.fuji.module.initializer.chat.ChatInitializer io.github.sakurawald.fuji.module.initializer.chat.display.ChatDisplayInitializer io.github.sakurawald.fuji.module.initializer.chat.history.ChatHistoryInitializer io.github.sakurawald.fuji.module.initializer.chat.mention.ChatMentionInitializer io.github.sakurawald.fuji.module.initializer.chat.replace.ChatReplaceInitializer io.github.sakurawald.fuji.module.initializer.chat.spy.ChatSpyInitializer io.github.sakurawald.fuji.module.initializer.chat.style.ChatStyleInitializer io.github.sakurawald.fuji.module.initializer.chat.trigger.ChatTriggerInitializer ``` -------------------------------- ### Command Toolbox TPPos Module Source: https://github.com/sakurawald/fuji/blob/dev/TEST-CASE.md Tests the `command_toolbox.tppos` module for passing command context after redirection and teleporting to an offline player's location, ensuring the player instance is made and the saved dimension is not reset. ```java // Test Case: Issue the command `/tppos --z 64 --x 32 --y 128` // Target: The command context should be passed after the command redirection. // Test Case: Teleport to an offline player's location using `/tppos offline` // Target: We should be able to make the offline player instance. // Target: The saved dimension of the offline player should not be reset to minecraft:overworld ``` -------------------------------- ### Back Command Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for the 'back' command, likely used for returning to a previous location or state. ```java io.github.sakurawald.fuji.module.initializer.back.BackInitializer ``` -------------------------------- ### AFK Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers related to the AFK (Away From Keyboard) functionality. This includes the core AFK initializer and its effect initializer. ```java io.github.sakurawald.fuji.module.initializer.afk.AfkInitializer io.github.sakurawald.fuji.module.initializer.afk.effect.AfkEffectInitializer ``` -------------------------------- ### Command Scheduler Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for the command scheduler, enabling the scheduling of commands to run at specific times or intervals. ```java io.github.sakurawald.fuji.module.initializer.command_scheduler.CommandSchedulerInitializer ``` -------------------------------- ### Color Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt Initializers for applying color to game elements, specifically for anvils and signs. ```java io.github.sakurawald.fuji.module.initializer.color.anvil.ColorAnvilInitializer io.github.sakurawald.fuji.module.initializer.color.sign.ColorSignInitializer ``` -------------------------------- ### Command Meta Initializers Source: https://github.com/sakurawald/fuji/blob/dev/common/src/main/resources/graph/module-initializer-graph.txt A collection of initializers for meta-commands, which control the behavior or execution flow of other commands. Includes conditional logic, attachments, chaining, delays, loops, JSON processing, no-ops, one-of selections, execution, shell commands, and online status checks. ```java io.github.sakurawald.fuji.module.initializer.command_meta.IF.IfInitializer io.github.sakurawald.fuji.module.initializer.command_meta.attachment.AttachmentInitializer io.github.sakurawald.fuji.module.initializer.command_meta.chain.ChainInitializer io.github.sakurawald.fuji.module.initializer.command_meta.delay.DelayInitializer io.github.sakurawald.fuji.module.initializer.command_meta.for_each.ForEachInitializer io.github.sakurawald.fuji.module.initializer.command_meta.json.JsonInitializer io.github.sakurawald.fuji.module.initializer.command_meta.nop.NopInitializer io.github.sakurawald.fuji.module.initializer.command_meta.one_of.OneOfInitializer io.github.sakurawald.fuji.module.initializer.command_meta.run.RunInitializer io.github.sakurawald.fuji.module.initializer.command_meta.shell.ShellInitializer io.github.sakurawald.fuji.module.initializer.command_meta.when_online.WhenOnlineInitializer ```