## trpg-java-dice
**简介:**
- 该项目主要负责TRPG中的骰子逻辑处理。
- 该模块主要分为 指令识别 、 数值运算。
- 通过在框架上设计的时候,应当从不依赖其他项目的基础上去实现。从而极大的降低耦合度
- 指令的识别通过的是注解反射的形式执行。
- 该项目为 [mirai-rulateday-dice](https://github.com/eiriksgata/mirai-rulateday-dice) 的依赖项目。
- 该骰子的开发设定主要是目前两大跑团体系:DND 、 COC。
- 目前作者开发的定义版本为 DND5e 、 COC7版。
- 该项目将会和 `mirai-rulateday-dice`同步更新。
- 如果你有什么疑问或者讨论方案,可以选择在在[discussions](https://github.com/eiriksgata/mirai-rulateday-dice/discussions)进行
## 快速使用
**Maven**
Step 1. Add the JitPack repository to your build file
```XML
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://www.jitpack.io</url>
</repository>
</repositories>
```
Step 2. Add the dependency
```XML
<dependency>
<groupId>com.github.eiriksgata</groupId>
<artifactId>trpg-java-dice</artifactId>
<version>TAG</version> <!-- 请使用最新版 -->
</dependency>
```
- 引入方式参考:[jitpack/eiriksgata/trpg-java-dice](https://www.jitpack.io/#eiriksgata/trpg-java-dice/1.1.2-alpha)
- 引用后需要在当前项目的Resources 资源路径下新建一个配置文件,该文件用于配置反射扫描包路径,具体参考**配置文件说明**
**配置文件说明**
- 如果引用该依赖,需要在资源项目中加入以下配置文件(例如Spring架构或者mybatis那样)
配置文件名
**trpg-dice-config.properties**
```properties
## trpg-java-dice Config
reflections.scan.path=com.github.eiriksgata
```
com.github.eiriksgata 为你在项目中使用的@InstructService | @InstructReflex 类的包路径(类似于Mybatis Mapper 的包扫描,此操作仅是加快处理反应速度。越具体越快速)
具体使用请参考 [Mirai-Rualteday-Dice](https://github.com/eiriksgata/mirai-rulateday-dice) 项目
**开发模块划分**
* 指令识别
* 骰子运算核心
* 自定义文本回复
## 指令识别
- 用户可以通过指令来使骰子程序生成不同的数值。
- 除此之外还可以更改骰子的默认属性或者是操作菜单等。
- 目前是做了一个大概的开发代码的思路模板。
- 本项目中不参与指令的形式设置,只参与参数的传入,进行处理后返还数据结果。
**注解:**
* `@InstructService` 注解为标记指令模块类,用于反射架构扫描。
* `@InstructRelflex` 主要标记为指令识别类,当消息传递过来后,将会运行有该指令标记的方法。使用请参考代码中的例子。
参数说明:priority 为 指令优先级,如果出现拥有相同关键字的文本,数值越大的会越先执行。`例如: .rh > .r`
* (关于注解扫描的包的位置,后续会像Spring的设计,增加一个注解扫描包的配置文件,用于开发者填写使用)
**反射实现处理类**
- `InstructHandle` 利用`reflections` 反射框架来实现的检测。
- 指令模块通过注解反射的形式,减少了代码实现的耦合度。
- 开发人员可以通过在集成的项目中使用注解,从而进行更多的额外操作。
- 这里只是提供了指令的反射处理,并没有做指令的具体实现。具体实现请参考 `mirai-rulateday-dice` 的实现。
- 特殊的指令如果需要后续的修改项,应当考虑使用回调的形式进行。
## 骰子运算
- 骰子运算的基础雷包含在 `RollBasicsImpl`
- 因为跑团中基本使用到属性检测的,基本只有coc 而目前大部分的版本为 coc7版
在7版中,大部分以100面骰子。
本项目中也提供了大量的骰子默认配置项,用于更改。
- 在该模块中包含了 骰子数字生成、属性检测、理智检测等
## 自定义文本回复
骰子计算后生成的文本会通过该静态方法处理后返回文本。
## 配置文件说明
**在该项目中包含了多个配置文件,其中涉及骰子的默认设置,以及自定义返回文本的配置项、国际化文件等**
* **custom-text.properties** 自定义返回文本配置文件,用户可以根据默认的文本内容进行参考。系统的返回文本会优先检测该配置文件的词条,如果没有则按默认的文本配置文件返回。
* **default-text.properties** 默认的文本返回配置文件,如果用户没有使用自定义文本,则使用该配置文件。
* **dice-config.properties** 骰子系统的默认数值配置文件,其中包含了骰子默认类型、骰子个数最大最小值、骰子面数最大最小值、骰子系统的默认语言、coc7规则界限等。
* **rulebook.coc.properties** coc规则书的文本内容(暂时保留)
* **rulebook-dnd.properties** dnd规则书文本内容(暂时保留)
没有合适的资源?快使用搜索试试~ 我知道了~
用Java编写的TRPG骰子核心逻辑处理项目。该项目继承了常用的指令处理,例如coc7的属性检测,骰子默认数值设置等等。.zip
共39个文件
java:23个
properties:7个
json:3个
需积分: 0 1 下载量 82 浏览量
2024-01-17
20:03:03
上传
评论
收藏 47KB ZIP 举报
温馨提示
Java项目
资源推荐
资源详情
资源评论
收起资源包目录
用Java编写的TRPG骰子核心逻辑处理项目。该项目继承了常用的指令处理,例如coc7的属性检测,骰子默认数值设置等等。.zip (39个子文件)
557sdsadasd
pom.xml 4KB
.github
workflows
codeql-analysis.yml 2KB
src
test
java
DiceTest.java 3KB
default-text.json 7KB
main
resources
env
dev
trpg-dice-config.properties 69B
messages_en_US.properties 186B
default-text.json 7KB
dice-config.properties 181B
rulebook-dnd.properties 0B
rulebook.coc.properties 0B
custom-text.json 7KB
messages_zh_CN.properties 185B
messages.properties 0B
java
com
github
eiriksgata
trpg
dice
injection
InstructService.java 90B
InstructReflex.java 330B
message
handle
InstructHandle.java 3KB
operation
DiceSet.java 267B
RollBasics.java 1KB
impl
AttributeCheckImpl.java 3KB
RollBonusImpl.java 6KB
SanCheckImpl.java 4KB
RollRoleImpl.java 3KB
RollArrayCallback.java 169B
RollBasicsImpl.java 10KB
RollRole.java 191B
callback
RollRandomCallback.java 162B
SanCheckCallback.java 199B
exception
ExceptionEnum.java 2KB
DiceInstructException.java 1KB
reply
CustomText.java 5KB
utlis
RegularExpressionUtils.java 2KB
VersionUtils.java 1KB
vo
MessageData.java 178B
RegularExpressionResult.java 200B
config
DiceConfig.java 268B
LICENSE 34KB
CODE_OF_CONDUCT.md 3KB
.gitignore 398B
README.md 5KB
共 39 条
- 1
资源评论
zero2100
- 粉丝: 161
- 资源: 2464
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功