1.0.0
Compatibility
Changes
GunPlugin - 枪械插件详细说明
GunPlugin - Detailed Plugin Description
📖 插件概述 / Plugin Overview
中文描述
GunPlugin是一个功能丰富的Minecraft枪械插件,为Spigot 1.21.4服务器提供完整的射击体验。插件支持多种枪械类型、真实弹道系统、自定义配置和高级射击功能,让玩家在Minecraft中体验真实的枪战。
English Description
GunPlugin is a feature-rich Minecraft gun plugin that provides a complete shooting experience for Spigot 1.21.4 servers. The plugin supports multiple weapon types, realistic ballistics system, custom configuration, and advanced shooting features, allowing players to experience realistic gunfights in Minecraft.
🎯 功能列表 / Feature List
核心功能 / Core Features
1. 枪械系统 / Weapon System
-
默认枪械 / Default Weapons:
- 手枪 (皮革马铠) - 单发,12发弹匣,4点伤害
- 步枪 (铁马铠) - 连发,40发弹匣,5点伤害
- 霰弹枪 (金马铠) - 多发,7发弹匣,15点伤害
- 狙击枪 (钻石马铠) - 单发,5发弹匣,20点伤害
-
自定义枪械 / Custom Weapons:
- 支持任意物品材质作为枪械
- 可配置弹匣容量、伤害、射速等参数
- 支持自动/单发/霰弹枪模式
2. 弹道系统 / Ballistics System
- 子弹物理 / Bullet Physics:
- 真实的重力下坠效果
- 可配置的子弹速度
- 穿透系统(可穿透特定方块)
- 移动散步系统(移动时精度降低)
3. 射击机制 / Shooting Mechanics
-
射击模式 / Firing Modes:
- 单发模式:点击射击
- 连发模式:按住连续射击
- 霰弹枪模式:一次发射多发子弹
-
弹药管理 / Ammunition Management:
- 弹匣系统
- 自动换弹
- 手动换弹(F键)
- 弹药显示(ActionBar)
4. 音效系统 / Sound System
- 多层次音效 / Multi-layered Sounds:
- 射击音效(延迟播放)
- 换弹音效(分阶段播放)
- 击中音效
- 后坐力音效
5. 视觉效果 / Visual Effects
- 粒子效果 / Particle Effects:
- 枪口火焰
- 子弹轨迹
- 击中效果
- 血雾效果
- 后坐力粒子
6. 交互系统 / Interaction System
- 左键右键禁用 / Left/Right Click Disable:
- 持枪时禁用左键攻击
- 持枪时禁用右键交互
- 可配置开启/关闭
7. 高级功能 / Advanced Features
-
爆头检测 / Headshot Detection:
- 击中头部增加30%伤害
- 特殊音效反馈
-
后坐力系统 / Recoil System:
- 视觉粒子反馈
- 不影响玩家移动
📚 使用教程 / Usage Tutorial
基础使用 / Basic Usage
1. 获得枪械 / Getting Weapons
# 给予默认枪械 / Give default weapons
/gun give pistol # 手枪 / Pistol
/gun give rifle # 步枪 / Rifle
/gun give shotgun # 霰弹枪 / Shotgun
/gun give sniper # 狙击枪 / Sniper
# 给予自定义枪械 / Give custom weapons
/gun give custom_rifle # 自定义步枪 / Custom rifle
2. 射击操作 / Shooting Operations
-
单发武器 / Single-shot Weapons:
- 右键点击射击
- 自动消耗弹药
- 弹匣空时自动换弹
-
连发武器 / Automatic Weapons:
- 按住右键连续射击
- 松开右键停止射击
- 支持弹药耗尽自动换弹
-
霰弹枪 / Shotgun:
- 一次发射5发子弹
- 每发子弹有独立弹道
- 近距离伤害更高
3. 换弹操作 / Reload Operations
-
自动换弹 / Auto Reload:
- 弹匣空时自动开始换弹
- 显示换弹进度
- 播放换弹音效
-
手动换弹 / Manual Reload:
- 按F键手动换弹
- 可在任何时候换弹
- 换弹时无法射击
4. 弹药管理 / Ammunition Management
# 设置弹药数量 / Set ammo count
/gun ammo 100 # 设置当前枪械弹药为100发 / Set current weapon ammo to 100
# 查看弹药信息 / View ammo info
# 弹药信息显示在ActionBar中 / Ammo info displayed in ActionBar
高级使用 / Advanced Usage
1. 自定义枪械创建 / Custom Weapon Creation
# 在config.yml中添加自定义枪械 / Add custom weapon in config.yml
guns:
my_rifle:
name: "我的步枪" # Weapon name
material: "IRON_SWORD" # Item material
magazine_size: 30 # Magazine capacity
damage: 6.0 # Damage
fire_rate: 0.1 # Fire rate (seconds)
bullet_speed: 80 # Bullet speed
bullet_drop: 0.08 # Bullet drop
shoot_sound: "ENTITY_ZOMBIE_BREAK_WOODEN_DOOR" # Shoot sound
reload_time: 2.5 # Reload time
penetration_power: 2 # Penetration power
recoil: 1.8 # Recoil
is_automatic: true # Automatic firing
is_shotgun: false # Not shotgun
shotgun_pellets: 1 # Single pellet
2. 配置系统设置 / Configure System Settings
# 插件设置 / Plugin settings
settings:
disable_left_click: true # 禁用左键攻击 / Disable left-click attacks
disable_right_click_interaction: true # 禁用右键交互 / Disable right-click interactions
3. 权限配置 / Permission Configuration
# LuckPerms权限配置示例 / LuckPerms permission configuration example
groups:
default:
permissions:
- gunplugin.use # 基础使用权限 / Basic usage permission
vip:
permissions:
- gunplugin.use
- gunplugin.give # 给予枪械权限 / Give weapons permission
admin:
permissions:
- gunplugin.* # 所有权限 / All permissions
🔧 调试教程 / Debugging Tutorial
常见问题诊断 / Common Issue Diagnosis
1. 子弹没有伤害 / Bullets Don't Deal Damage
症状 / Symptoms:
- 子弹击中目标但没有伤害
- 子弹轨迹正常但无效果
诊断步骤 / Diagnosis Steps:
# 1. 检查玩家权限 / Check player permissions
/lp user <player> permission check gunplugin.use
# 2. 检查插件状态 / Check plugin status
/plugins
# 3. 查看控制台错误 / Check console errors
# 查看服务器控制台是否有错误信息 / Check server console for error messages
# 4. 测试基础功能 / Test basic functions
/gun give pistol
# 尝试射击测试 / Try shooting test
解决方案 / Solutions:
- 确保玩家有
gunplugin.use权限 - 检查插件是否正确加载
- 重新加载插件:
/reload - 检查是否有其他插件冲突
2. 自动射击不工作 / Auto Fire Not Working
症状 / Symptoms:
- 按住右键无法连续射击
- 射击立即停止
诊断步骤 / Diagnosis Steps:
# 1. 检查枪械类型 / Check weapon type
# 确认使用的是自动武器(步枪) / Confirm using automatic weapon (rifle)
# 2. 检查弹药 / Check ammunition
# 确保有足够弹药 / Ensure sufficient ammunition
# 3. 检查换弹状态 / Check reload status
# 确保不在换弹中 / Ensure not reloading
解决方案 / Solutions:
- 使用步枪进行测试
- 确保弹药充足
- 等待换弹完成
- 检查右键松开检测设置
3. 自定义枪械不工作 / Custom Weapons Not Working
症状 / Symptoms:
- 自定义枪械无法射击
- 配置不生效
诊断步骤 / Diagnosis Steps:
# 1. 检查配置文件语法 / Check config file syntax
# 确保YAML格式正确 / Ensure YAML format is correct
# 2. 重新加载配置 / Reload configuration
/reload
# 3. 检查材质名称 / Check material names
# 确保材质名称正确 / Ensure material names are correct
解决方案 / Solutions:
- 检查YAML语法错误
- 使用正确的材质名称
- 重新加载插件
- 参考默认配置格式
4. 音效不播放 / Sounds Not Playing
症状 / Symptoms:
- 射击时没有音效
- 换弹时没有音效
诊断步骤 / Diagnosis Steps:
# 1. 检查音效名称 / Check sound names
# 确保音效名称正确 / Ensure sound names are correct
# 2. 检查客户端设置 / Check client settings
# 确保音效已启用 / Ensure sounds are enabled
# 3. 测试默认音效 / Test default sounds
# 使用默认枪械测试 / Test with default weapons
解决方案 / Solutions:
- 使用正确的音效名称
- 检查客户端音效设置
- 使用默认配置测试
- 更新到最新版本
调试命令 / Debug Commands
# 检查插件状态 / Check plugin status
/plugins
# 重新加载插件 / Reload plugin
/reload
# 检查玩家权限 / Check player permissions
/lp user <player> permission check gunplugin.use
# 查看插件配置 / View plugin configuration
# 检查plugins/GunPlugin/config.yml文件 / Check plugins/GunPlugin/config.yml file
日志分析 / Log Analysis
重要日志信息 / Important Log Information
# 插件加载日志 / Plugin loading logs
[INFO] [GunPlugin] Enabling GunPlugin v1.9.7
[INFO] [GunPlugin] GunPlugin has been enabled!
# 错误日志 / Error logs
[ERROR] [GunPlugin] Error in bullet update task
[WARN] [GunPlugin] Player not found in ammo data
# 调试信息 / Debug information
[DEBUG] [GunPlugin] Player <player> shot with <weapon>
[DEBUG] [GunPlugin] Bullet hit entity: <entity>
⚙️ 功能原理 / Feature Principles
1. 子弹系统原理 / Bullet System Principles
子弹创建 / Bullet Creation
// 子弹创建流程 / Bullet creation process
1. 玩家射击触发 / Player shooting triggered
2. 检查弹药和权限 / Check ammunition and permissions
3. 创建Bullet对象 / Create Bullet object
4. 添加到activeBullets列表 / Add to activeBullets list
5. 启动子弹更新任务 / Start bullet update task
子弹更新 / Bullet Update
// 子弹更新机制 / Bullet update mechanism
public boolean update() {
// 1. 应用重力 / Apply gravity
velocity.add(new Vector(0, -bulletDrop / 20.0, 0));
// 2. 移动子弹 / Move bullet
Location newLocation = location.clone().add(velocity);
// 3. 检测碰撞 / Detect collision
RayTraceResult result = world.rayTraceEntities(...);
// 4. 处理击中 / Handle hit
if (result != null) {
// 造成伤害 / Deal damage
// 播放音效 / Play sound
// 显示粒子 / Show particles
return true; // 移除子弹 / Remove bullet
}
// 5. 检查方块碰撞 / Check block collision
// 6. 处理穿透 / Handle penetration
// 7. 更新位置 / Update position
}
2. 射击系统原理 / Shooting System Principles
单发射击 / Single Shot
// 单发射击流程 / Single shot process
1. 检查射击条件 / Check shooting conditions
- 弹药检查 / Ammunition check
- 射速检查 / Fire rate check
- 权限检查 / Permission check
2. 创建子弹 / Create bullet
- 计算方向 / Calculate direction
- 应用散步 / Apply spread
- 设置参数 / Set parameters
3. 播放效果 / Play effects
- 音效 / Sound effects
- 粒子 / Particles
- 后坐力 / Recoil
4. 更新状态 / Update status
- 消耗弹药 / Consume ammunition
- 更新ActionBar / Update ActionBar
- 记录射击时间 / Record shot time
连发射击 / Automatic Fire
// 连发射击机制 / Automatic fire mechanism
1. 右键按下 / Right-click pressed
- 设置按住状态 / Set holding state
- 记录时间 / Record time
- 启动连发任务 / Start auto-fire task
2. 连发任务循环 / Auto-fire task loop
- 检查按住状态 / Check holding state
- 检查时间间隔 / Check time interval
- 检查弹药 / Check ammunition
- 发射子弹 / Fire bullet
3. 右键松开 / Right-click released
- 清除按住状态 / Clear holding state
- 停止连发任务 / Stop auto-fire task
3. 弹药系统原理 / Ammunition System Principles
弹药存储 / Ammunition Storage
// 弹药数据结构 / Ammunition data structure
Map<UUID, Map<GunType, Integer>> playerAmmo; // 默认枪械弹药 / Default weapon ammo
Map<UUID, Map<Material, Integer>> configGunAmmo; // 配置枪械弹药 / Config weapon ammo
// 弹药操作 / Ammunition operations
- getAmmo(player, weapon) // 获取弹药 / Get ammunition
- setAmmo(player, weapon, amount) // 设置弹药 / Set ammunition
- consumeAmmo(player, weapon) // 消耗弹药 / Consume ammunition
- reload(player, weapon) // 换弹 / Reload
换弹机制 / Reload Mechanism
// 换弹流程 / Reload process
1. 检查换弹条件 / Check reload conditions
- 是否在换弹中 / Is reloading
- 弹匣是否已满 / Is magazine full
2. 开始换弹 / Start reload
- 添加到换弹列表 / Add to reloading list
- 启动换弹任务 / Start reload task
- 播放换弹音效 / Play reload sounds
3. 换弹任务 / Reload task
- 等待换弹时间 / Wait for reload time
- 填充弹药 / Fill ammunition
- 完成换弹 / Complete reload
4. 音效系统原理 / Sound System Principles
多层次音效 / Multi-layered Sounds
// 射击音效系统 / Shoot sound system
switch (gunType) {
case PISTOL:
// 第一层音效 / First layer sound
player.playSound(loc, Sound.ENTITY_ZOMBIE_ATTACK_WOODEN_DOOR, 0.7f, 1.9f);
// 延迟音效 / Delayed sound
new BukkitRunnable() {
public void run() {
player.playSound(loc, Sound.ITEM_TRIDENT_THROW, 0.7f, 1.3f);
}
}.runTaskLater(plugin, 1L); // 1 tick delay
break;
}
// 换弹音效系统 / Reload sound system
// 分阶段播放音效 / Play sounds in stages
- 第一阶段:换弹开始 / Stage 1: Reload start
- 第二阶段:换弹进行 / Stage 2: Reload in progress
- 第三阶段:换弹完成 / Stage 3: Reload complete
5. 粒子系统原理 / Particle System Principles
粒子效果类型 / Particle Effect Types
// 射击粒子 / Shoot particles
- 枪口火焰 / Muzzle flash
- 子弹轨迹 / Bullet trajectory
- 击中效果 / Hit effects
// 换弹粒子 / Reload particles
- 换弹进度 / Reload progress
- 完成效果 / Completion effects
// 后坐力粒子 / Recoil particles
- 烟雾效果 / Smoke effects
- 视觉反馈 / Visual feedback
6. 权限系统原理 / Permission System Principles
权限检查 / Permission Checking
// 权限检查流程 / Permission check process
1. 事件触发 / Event triggered
2. 检查基础权限 / Check basic permission
if (!player.hasPermission("gunplugin.use")) return;
3. 检查特定权限 / Check specific permission
if (!player.hasPermission("gunplugin.admin")) return;
4. 执行操作 / Execute operation
🎮 游戏机制 / Game Mechanics
1. 射击精度 / Shooting Accuracy
散步系统 / Spread System
// 散步计算 / Spread calculation
private double calculateSpread(Player player) {
// 1. 获取玩家移动距离 / Get player movement distance
double distance = currentLocation.distance(lastLocation);
// 2. 根据移动计算散步 / Calculate spread based on movement
if (distance < 0.1) {
return 0.05; // 静止时轻微散步 / Slight spread when stationary
} else if (distance < 0.5) {
return distance * 0.3; // 缓慢移动 / Slow movement
} else {
return Math.min(distance * 0.8, 1.2); // 快速移动 / Fast movement
}
}
精度影响因素 / Accuracy Factors
- 移动速度 / Movement Speed: 移动越快,散步越大
- 武器类型 / Weapon Type: 不同武器有不同的基础精度
- 射击距离 / Shooting Distance: 距离越远,散步影响越大
2. 伤害系统 / Damage System
基础伤害 / Base Damage
// 伤害计算 / Damage calculation
double finalDamage = baseDamage;
// 爆头检测 / Headshot detection
if (isHeadshot(entity, hitPosition)) {
finalDamage *= 1.3; // 增加30%伤害 / Increase 30% damage
}
// 应用伤害 / Apply damage
entity.damage(finalDamage, shooter);
伤害类型 / Damage Types
- 基础伤害 / Base Damage: 武器配置的伤害值
- 爆头伤害 / Headshot Damage: 击中头部增加30%伤害
- 穿透伤害 / Penetration Damage: 穿透后的伤害衰减
3. 弹道系统 / Ballistics System
重力影响 / Gravity Effect
// 重力计算 / Gravity calculation
velocity.add(new Vector(0, -bulletDrop / 20.0, 0));
// 弹道下坠 / Ballistic drop
- 手枪:较重下坠 / Pistol: Heavy drop
- 步枪:轻微下坠 / Rifle: Light drop
- 霰弹枪:较重下坠 / Shotgun: Heavy drop
- 狙击枪:轻微下坠 / Sniper: Light drop
穿透系统 / Penetration System
// 穿透检查 / Penetration check
private boolean canPenetrateBlock(Material material) {
// 可穿透方块 / Penetrable blocks
- 草类方块 / Grass blocks
- 花类方块 / Flower blocks
- 玻璃类方块 / Glass blocks
- 空气 / Air
// 根据穿透力判断 / Judge by penetration power
- 步枪:1格穿透 / Rifle: 1 block penetration
- 狙击枪:4格穿透 / Sniper: 4 block penetration
}
🔍 技术架构 / Technical Architecture
1. 类结构 / Class Structure
GunPlugin (主类 / Main Class)
├── GunManager (枪械管理器 / Gun Manager)
├── GunListener (事件监听器 / Event Listener)
├── GunCommand (命令处理器 / Command Handler)
├── ConfigManager (配置管理器 / Config Manager)
├── AmmoData (弹药数据 / Ammunition Data)
├── Bullet (子弹类 / Bullet Class)
└── GunType (枪械类型枚举 / Gun Type Enum)
2. 数据流 / Data Flow
玩家操作 / Player Action
↓
事件监听 / Event Listening
↓
权限检查 / Permission Check
↓
枪械识别 / Weapon Identification
↓
射击处理 / Shooting Process
↓
子弹创建 / Bullet Creation
↓
碰撞检测 / Collision Detection
↓
伤害应用 / Damage Application
↓
效果播放 / Effect Playback
3. 任务调度 / Task Scheduling
// 主要任务 / Main tasks
- 子弹更新任务 / Bullet update task (每tick / Every tick)
- 右键检测任务 / Right-click detection task (每tick / Every tick)
- ActionBar更新任务 / ActionBar update task (每2秒 / Every 2 seconds)
- 换弹任务 / Reload task (延迟执行 / Delayed execution)
- 音效任务 / Sound task (延迟执行 / Delayed execution)
📊 性能优化 / Performance Optimization
1. 内存管理 / Memory Management
子弹生命周期 / Bullet Lifecycle
// 子弹自动清理 / Automatic bullet cleanup
- 最大存活时间:100 ticks (5秒) / Max lifetime: 100 ticks (5 seconds)
- 击中后立即移除 / Remove immediately after hit
- 定期清理过期子弹 / Regular cleanup of expired bullets
数据清理 / Data Cleanup
// 玩家数据清理 / Player data cleanup
- 玩家退出时清理 / Cleanup on player quit
- 定期清理离线玩家数据 / Regular cleanup of offline player data
- 内存泄漏防护 / Memory leak prevention
2. 性能监控 / Performance Monitoring
关键指标 / Key Metrics
- 活跃子弹数量 / Active Bullet Count: 监控内存使用
- 玩家数量 / Player Count: 监控数据存储
- 任务执行时间 / Task Execution Time: 监控性能影响
优化策略 / Optimization Strategies
- 批量处理 / Batch Processing: 批量更新子弹状态
- 延迟加载 / Lazy Loading: 按需加载配置数据
- 缓存机制 / Caching: 缓存常用数据
🛡️ 安全考虑 / Security Considerations
1. 权限控制 / Permission Control
权限分级 / Permission Levels
// 权限等级 / Permission levels
- gunplugin.use: 基础使用权限 / Basic usage permission
- gunplugin.admin: 管理员权限 / Admin permission
- gunplugin.give: 给予枪械权限 / Give weapons permission
- gunplugin.ammo: 设置弹药权限 / Set ammo permission
安全检查 / Security Checks
- 权限验证 / Permission Verification: 每次操作前检查权限
- 输入验证 / Input Validation: 验证命令参数
- 数据验证 / Data Validation: 验证配置文件数据
2. 防作弊 / Anti-Cheat
射击限制 / Shooting Restrictions
- 射速限制 / Fire Rate Limitation: 防止快速射击
- 弹药检查 / Ammunition Check: 防止无限弹药
- 距离检查 / Distance Check: 防止超远距离射击
数据完整性 / Data Integrity
- 状态同步 / State Synchronization: 确保客户端服务器状态一致
- 异常检测 / Anomaly Detection: 检测异常行为
- 日志记录 / Logging: 记录可疑活动
📈 扩展性 / Extensibility
1. 插件API / Plugin API
事件系统 / Event System
// 自定义事件 / Custom events
- GunShootEvent: 射击事件 / Shooting event
- GunReloadEvent: 换弹事件 / Reload event
- BulletHitEvent: 子弹击中事件 / Bullet hit event
钩子接口 / Hook Interfaces
// 可扩展接口 / Extensible interfaces
- WeaponProvider: 武器提供者 / Weapon provider
- DamageCalculator: 伤害计算器 / Damage calculator
- EffectRenderer: 效果渲染器 / Effect renderer
2. 配置扩展 / Configuration Extension
动态配置 / Dynamic Configuration
- 热重载 / Hot Reload: 无需重启服务器
- 条件配置 / Conditional Configuration: 基于条件的配置
- 模板系统 / Template System: 配置模板支持
多语言支持 / Multi-language Support
- 本地化 / Localization: 支持多种语言
- 动态切换 / Dynamic Switching: 运行时切换语言
- 自定义翻译 / Custom Translation: 自定义翻译文件
🎯 最佳实践 / Best Practices
1. 服务器配置 / Server Configuration
推荐设置 / Recommended Settings
# 服务器配置建议 / Server configuration recommendations
server.properties:
view-distance: 10 # 视距设置 / View distance setting
simulation-distance: 8 # 模拟距离 / Simulation distance
# 插件配置建议 / Plugin configuration recommendations
config.yml:
settings:
disable_left_click: true # 禁用左键攻击 / Disable left-click attacks
disable_right_click_interaction: true # 禁用右键交互 / Disable right-click interactions
性能优化 / Performance Optimization
- 限制玩家数量 / Limit Player Count: 避免过多玩家同时使用
- 定期重启 / Regular Restart: 定期重启服务器清理内存
- 监控资源 / Monitor Resources: 监控CPU和内存使用
2. 游戏平衡 / Game Balance
武器平衡 / Weapon Balance
- 伤害调整 / Damage Adjustment: 根据服务器需求调整伤害
- 射速限制 / Fire Rate Limitation: 防止武器过于强大
- 弹药限制 / Ammunition Limitation: 控制弹药获取
经济系统 / Economy System
- 武器价格 / Weapon Prices: 设置合理的武器价格
- 弹药消耗 / Ammunition Consumption: 控制弹药消耗
- 维护成本 / Maintenance Cost: 武器维护成本
🔮 未来规划 / Future Plans
1. 功能扩展 / Feature Extensions
计划功能 / Planned Features
- 武器改装系统 / Weapon Modification System: 武器配件和改装
- 团队系统 / Team System: 团队对战功能
- 排行榜系统 / Leaderboard System: 射击统计和排名
- 成就系统 / Achievement System: 射击成就和奖励
技术改进 / Technical Improvements
- 性能优化 / Performance Optimization: 进一步优化性能
- 网络同步 / Network Synchronization: 改善网络同步
- 错误处理 / Error Handling: 增强错误处理机制
2. 社区支持 / Community Support
社区功能 / Community Features
- 用户反馈 / User Feedback: 收集用户反馈
- 功能投票 / Feature Voting: 社区功能投票
- 贡献指南 / Contribution Guide: 社区贡献指南
文档完善 / Documentation Improvement
- API文档 / API Documentation: 完善API文档
- 教程视频 / Tutorial Videos: 制作教程视频
- 示例项目 / Example Projects: 提供示例项目
感谢使用GunPlugin! / Thank you for using GunPlugin! 🎯
如有任何问题或建议,请随时联系我们! / If you have any questions or suggestions, please feel free to contact us!
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:gK2oBkQi:RyATWJda"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:gK2oBkQi:RyATWJda"
}

