MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. Moyuyanli
    3. 帖子
    • 资料
    • 关注 2
    • 粉丝 11
    • 主题 14
    • 帖子 244
    • 最佳 24
    • 有争议的 1
    • 群组 2

    Moyuyanli 发布的帖子

    • RE: HuYanEconomy 壶言壶言经济 --- 娱乐插件

      @bronyazaychik 嘿

      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • [壶言鉴权]一个能帮助你快速开发Mirai插件的前置插件

      HuYanAuthorize 壶言鉴权

      仓库地址:github

      说明

      一个用于针对简化mirai插件开发的前置插件,简化的内容为:

      • 自动化添加消息监听
      • 针对用户(Friend),群(Group),群成员(GroupMember),群管理(GroupAdmin)都有独立的权限
      • 权限是通过分组形式添加,可以继承
      • 自动匹配触发内容(直接匹配或正则匹配)
      • 权限code也自定义添加

      使用

      • 添加依赖

      在build.gradle中

          dependencies {
          compileOnly("cn.chahuyun:HuYanAuthorize:1.2.0")
      }
      

      在插件的onEnable方法中启用

      java

          //添加本插件的注册消息包信息
          PermissionServer.INSTANCE.registerMessageEvent(this,"cn.chahuyun.authorize.event");
      

      kotlin

          PermissionServer.registerMessageEvent(this, "cn.chahuyun.authorize.event")
      
      

      在对应的包里面建立一个class,然后在类上面添加@EventComponent注解,表明这个类下面有需要注册的消息事件方法。

      建立一个方法,只有一个消息参数,无返回值。

      
      //添加消息鉴权注解
      @MessageAuthorize(text = "你好")
      public void reply(MessageEvent event) {
          event.getSubject().sendMessage("你好呀!");
      }
      
          @MessageAuthorize(text = ["你好"])
      suspend fun reply(event: MessageEvent) {
          event.subject.sendMessage("你好啊")
      }
      

      即可完成最基本的使用!

      消息鉴权api

      MessageAuthorize注解的所有可操作属性

      text 匹配文本

      text: Array<String>

      用于匹配的文本。

      • 在默认模式下,有任何一个String字符串,于其中一个相同,即匹配成功。
      • 在正则模式下,取第一个匹配。

      custom 自定义匹配

      custom: KClass<out CustomPattern>

      自定义匹配规则。

      实现CustomPattern接口即可。

      在匹配方式设置为CUSTOM时启用,启用时将忽略text的配置。

      messageMatching 消息匹配方式

      messageMatching: MessageMatchingEnum

      消息的匹配方式,有:

      • TEXT 文本匹配
      • REGULAR 正则匹配
      • CUSTOM 自定义匹配

      messageConversion 消息转换方式

      messageConversion: MessageConversionEnum

      用于在匹配消息的时候,消息转换为string的方式。

      • CONTENT contentToString()
      • MIRAI_CODE serializeToMiraiCode()
      • JSON serializeToJsonString()

      userPermissions 用户权限

      userPermissions: Array<String>

      需要用户拥有的权限。

      自己的权限需要进行注册,注册方式请查看权限注册。

      userPermissionsMatching 用户权限匹配方式

      userPermissionsMatching: PermissionMatchingEnum

      如果需要用户权限有多个,多个权限之间的匹配方式.

      • or 或,满足一个即匹配成功
      • and 且,都满足才匹配成功

      groupPermissions 群权限

      groupPermissions: Array<String>

      要求的群权限,跟用户同理,只不过要求的是群的权限。

      groupPermissionsMatching 群权限匹配方式

      groupPermissionsMatching:PermissionMatchingEnum

      同上面

      userInGroupPermissionsAssociation 用户与群权限的匹配方式

      userInGroupPermissionsAssociation: PermissionMatchingEnum

      如果某一条指令,即要求用户权限,又要求群权限。

      这里可以控制两种权限的合并方式。

      同上面用户的匹配方式。

      priority 优先级

      消息响应优先级,跟mirai的消息注册一样,一般不建议修改。

      concurrency 消息的处理方式

      消息的处理方式,跟mirai的消息注册一样,一般不建议修改。

      权限

      权限是本插件的核心,用于对整个消息注册做控制。

      采用的是code形式,是String字符串。

      本插件默认权限:

      • owner 主人权限,最高权限,类比root
      • admin 管理员权限,比root低

      不可使用的code:

      • null 表明无权限

      使用方法:

      AuthPerm.OWNER
      AuthPerm.ADMIN
      AuthPerm.NULL
      

      自定义注册权限

      fun registerPermCode(plugin: JvmPlugin, vararg perms: Perm)
      注册权限很简单。

      权限可以一次性注册多个。

      java

          PermissionServer.INSTANCE.registerPermCode(this,new Perm("test","一个测试的权限")...);
      
          PermissionServer.registerPermCode(this, Perm("test", "一个测试的权限"))
      

      注册成功后,会打印debug日志显示是否注册成功,或者该权限是否被别的插件注册。

      然后就可以在MessageAuthorize中的权限列表使用了。

      注意:

      • 这里注册用的权限是新建的,仅供于注册用
      • 想要使用注册后的权限,请使用下面的工具获取

      操作权限

      权限的实现分两部分,一部分是权限组(PermGroup),权限组有权限(Perm)和用户(User)。

      对于权限组,在依赖插件中如果手动操作了权限组,可以使用PermGroup自己的save()方法保存,或者使用工具操作权限组。

      操作权限组指令:

      指令 含义 案例 案例含义
      +perm (权限组名称) [权限code] 创建一个权限组,并添加对应的权限,权限组必填,code选填。 +perm 测试组 admin 添加或修改一个名叫测试组的权限组,并为测试组添加权限admmin。
      +perm (权限组名称) [%父权限组名称] 继承一个权限组,从父权限组哪里继承权限。指令能添加和修改权限组,并且能共用。 +perm 测试组 %主人 admin 添加或修改一个名叫测试组的权限组,继承主人权限组的所有权限,并添加admin权限。
      -perm (权限组名称) [权限code] 删除一个权限或权限组,当不填权限code时,会尝试删除整个权限组。 -perm 测试组 admin 删除权限组测试组的权限admin。
      =perm [权限组名称] 查询权限组信息,也可以查询单独一个权限组的信息。 =perm 查询所有权限组信息

      用户操作指令:

      用户分为四类用户,他们有不同的作用域。

      全局用户

      这个用户是作用于所有位置的一个单qq用户。

      指令 含义 案例 案例含义
      +global (@user) (权限组名称) 添加这个用户到对应权限组,这里可以at,可以直接填qq。 +global @放空 主人 添加放空到主人权限组
      -global (@user) (权限组名称) 还没写

      群成员用户

      这个用户作用于指定群的某个一群成员用户。

      指令 含义 案例 案例含义
      +member (@user) (权限组名称) 添加这个群成员到对应权限组,这里只能at,并且得在群里操作 +member @放空 主人 添加群成员放空到主人权限组
      -member (@user) (权限组名称) 还没写

      群管理用户

      这个用户是对于一个群的群主和管理员的用户。

      指令 含义 案例 案例含义
      +admin (权限组名称) 添加这个群的管理员到对应权限组,只能在群里操作 +admin 主人 添加本群管理员到主人权限组
      -admin (权限组名称) 还没写

      群用户

      这个用户跟上面三个不一样,这个代表的是这个群拥有的权限,而不是这个群里面所有人拥有的权限。

      指令 含义 案例 案例含义
      +group (权限组名称) 添加这个群到对应权限组,只能在群里操作 +group 主人 添加本群到主人权限组
      -group (权限组名称) 还没写

      其他api

      还开发一些好用的工具类,供大家使用。

      消息事件注册(PermissionServer)

      PermissionServer.kt

      带指令前缀的注册

      fun registerMessageEvent(plugin: JvmPlugin, packageName: String, prefix: String)

      指令前缀可为""。

      权限操作工具类(PermUtil)

      PermUtil.kt

      获取一个权限

      fun takePerm(code: String): Perm

      只能获取已经注册过的权限,未注册的权限会抛错。

      PermUtil.takePerm("admin")
      

      获取一个权限组

      fun talkPermGroupByName(name: String): PermGroup

      获取一个权限组,不存在则新建。

      PermUtil.talkPermGroupByName("测试组")
      

      检查这个用户有没有这个权限

      fun checkUserHasPerm(user: User, code: String): Boolean

      用户的获取请看下面

          //获取一个群用户
      val group = User.group(group.id)
      PermUtil.checkUserHasPerm(group, "admin")
      

      将这个用户添加到对应的权限组

      fun addUserToPermGroupByName(user: User, name: String): Boolean

      PermUtil.addUserToPermGroupByName(group, "测试组")
      

      将这个权限添加到对于的权限组

      fun addPermToPermGroupByName(perm: Perm, name: String): Boolea
      fun addPermToPermGroupByPermGroup(perm: Perm, permGroup: PermGroup): Boolean

      将这个用户从对应的权限组删除

      fun delUserFromPermGroupByName(user: User, name: String): Boolean

      用户的操作(User)

      UserUtil.kt

      获取用户

      • fun globalUser(userId: Long): User 查询或新建一个全局用户
      • fun group(groupId: Long): User 查询或新建一个群用户
      • fun groupAdmin(groupId: Long): User 查询或新建一个群管理用户
      • fun member(groupId: Long, userId: Long): User 查询或新建一个群成员用户

      kotlin

          UserUtil.group(390444068)
      UserUtil.member(390444068, 572490972)
      

      java

          UserUtil.INSTANCE.group(390444068L);
          UserUtil.INSTANCE.
      
      member(390444068L,572490972L);
      

      消息工具类(MessageUtil)

      MessageUtil.kt

      这个类比较简单,具体看看源码就明白了,但是好用!

      日志工具类(Log)

      Log.kt

      使用方法:

      在插件的onEnable方法中:

      Log.init(this)
      

      即可加载完成。

      然后在需要打印日志的地方直接:

      Log.info("这是一条日志")
      
      Log.INSTANCE.info("这是%s日志","一个");
      

      对于java,自带格式化。

      如果觉得不优雅,可以只引入他的INSTANCE。

      错误工具(ExceptionHandle)

      ExceptionHandle.kt

      对于消息注册方法,我做了一个错误收集。

      fun init(
          plugin: JvmPlugin,
          packageName: String,
          exceptionHandle: ExceptionHandleApi = ExceptionHandle()
      )
      

      这是一个消息注册的重载方法,只需要传递自己实现的错误接口即可拿到错误。

      获取主人

      对于依赖于本插件的插件,可以实现共用一个主人,就算是换代,换配置,主人依然可以保存。

      主人信息存在于数据库,如果config没有设置,会尝试从数据库找之前设置的主人来同步。
      如果config已经设置,会自动通过config的信息同步到数据。

          HuYanAuthorize.INSTANCE.getOwner()
      
      HuYanAuthorize.Companion.getINSTANCE().
      
      getOwner();
      

      指令

      命令前缀 命令 含义 案例
      #hya owner 设置主人 #hya owner 572490972
      v 查询当前插件版本 #hya v
      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • 现在还有插件的模板吗?

      我看文档的idea插件版本已经不符合了。
      不知道该怎么给新手创建一个插件模板。

      发布在 开发交流
      Moyuyanli
      Moyuyanli
    • RE: HuYanEconomy 壶言壶言经济 --- 娱乐插件

      再更一手!

      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • RE: HuYanEconomy 壶言壶言经济 --- 娱乐插件

      这几天,一天一更

      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • RE: 仿BA制造的好感度插件

      嘿

      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • RE: HuYanEconomy 壶言壶言经济 --- 娱乐插件

      嘿

      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • RE: QSign 9.0.55-9.0.95(公益 API发布)

      主服务g了可以试试用副服务地址。两个都挂了的话,直接联系作者吧。

      发布在 技术交流板块
      Moyuyanli
      Moyuyanli
    • RE: LoliYouWant —— 随机萝莉图,刑啊

      @MrXiaoM 好吧,好吧,

      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • RE: LoliYouWant —— 随机萝莉图,刑啊

      有考虑支持HuYanEconomy的货币吗?

      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • HuYanEconomy 壶言壶言经济 --- 娱乐插件

      HuYanEconomy 壶言壶言经济 --- 娱乐插件

      version download

      下载本插件

      这里是壶言经济,一款mirai娱乐插件,设计灵感来自于论坛的经济帖子,心血来潮就创建了这个项目,从22年11月开始,中间慢慢填坑,
      陆陆续续的完成了一部分饼,由于大部分饼都没实现,所以没在论坛发布,但是在我群共享。

      或许有些人在一些群见过本插件的功能,就比如这个签到

      88916f52-1ac1-4ca4-b53b-8ebb949e55a8-img.png

      现在完成了一些基本功能,仍然有很多bug的存在,但是能用(叉腰)。
      开个玩笑,如果遇见bug可以去github提issues。

      或者有什么好的建议也可以提。

      使用

      本插件需要前置:

      • mirai-economy-core
        依赖于:mirai-hibernate-plugin
      • HuYanAuthorize

      前置插件和插件本体一起放入plugins文件夹后,启动一次mirai,再停止。
      进入config/cn.chahuyun.HuYanAuthorize中配置AuthorizeConfig.yml:

      这里的主人,才是真主人。

      # 主人
      owner: 123456
      # 是否开启方法代理
      proxySwitch: false
      # 数据库类型(H2,SQLITE,MYSQL)
      dataType: H2
      # mysql数据库连接地址
      mysqlUrl: '127.0.0.1:3306/authorize'
      # mysql数据库用户名
      mysqlUser: root
      # mysql数据库密码
      mysqlPassword: 123456
      

      进入config/cn.chahuyun.HuYanEconomy中配置config:

      这里的主人暂时不可用。

      前置插件和插件本体一起放入plugins文件夹后,启动一次mirai,再停止。
      进入config/cn.chahuyun.HuYanEconomy中配置config:

      # 主人
      owner: 123456
      # 指令触发前缀
      prefix: ' '
      # 数据库类型(H2,MYSQL,SQLITE)
      dataType: MYSQL
      # mysql 连接地址
      mysqlUrl: 'localhost:3306/economy'
      # mysql 用户名
      mysqlUser: root
      # mysql 密码
      mysqlPassword: 123456
      # 插件单一管理botQQ
      bot: 123456
      

      请设置主人用于管理本插件!

      由于限制,本插件无法实现多bot,只能用于唯一bot,所以请指定botqq。

      数据库可以自定义指定,目前只实现了3种数据库。

      设置完成后,再次启动mirai即可使用本插件。


      功能列表

      由于一些功能上的设计缺陷,修复他们需要改动数据库,导致数据库的数据错误,因此需要执行修复指令:/hye repair;

      建议在控制台执行,并且最好是启动后先执行。只需要执行一次就行

      目前已知需要修复版本:

      • 1.4.3 -> 1.4.4 修复抢劫信息错误
      • 1.4.5 -> 1.4.6 修复鱼塘重复问题

      经济功能

      基于mirai-economy-core经济前置,注册货币为hy-gold。

      目前实现功能有:

      • 转账
      • 存款
      • 取款
      • 抢劫
      • 红包

      签到功能

      指令sign,签到,打卡,关闭签到,开启签到;

      完成签到会生成一张图片签到信息,当图片签到失败后会发送文字签到。
      签到图片目前支持背景自定义。

      只需要将图片放入data/cn.chahuyun.HuYanEconomy/bottom即可,每次启动都会读取一次文件夹里面的图片。
      data/cn.chahuyun.HuYanEconomy/font是自定义字体。

      背景图自动轮询。

      签到的刷新是每天的4点,可自定义时间。
      随机获得50~500的金币奖励!
      概率不均衡

      用户功能

      指令个人信息,info,money,经济信息,我的资金;

      可以生成一张当前用户的个人信息。
      同时获取一言

      对于昵称区域,群主是一个独立的渐变色,管理员是一种,群成员又是一种。
      部分功能会影响到颜色。

      银行功能

      指令存款 (额度),deposit (额度),取款 (额度),withdraw (额度),银行利率,富豪榜;

      银行功能设计之初支持多银行管理。
      但是目前只实现了主银行,也就是全局银行。

      以后可能会完成之前画的饼。

      银行有每周利息,利息随概率变动。

      变动规则:

      • 70% 1~3%
      • 29% 4~7%
      • 1% -3~-1%(经济危机!!!)

      称号功能

      指令我的称号,购买称号 (称号),切换称号 (称号坐标),称号商店;

      称号默认获取群特殊头衔,没有就获取群活跃头衔,颜色不同。

      除此之外的称号,都会有自己特有的颜色,目前只实现了4个称号:

      • [大富翁] 金币到达10w自动获得,期限永久,高贵的黄金渐变色!
      • [小富翁] 花费1w金币购买购买称号 小富翁,期限30天。
      • [只是传说] 签到狂人称号,连续签到15天获得,期限15天。
      • [邓刚] 钓鱼佬称号,钓鱼榜榜首持有,无期限。
      • [17张牌能秒我?] 赌怪称号,目前没有获取方法。

      特殊buff:

      • 启用签到狂人称号时,签到获得的金币翻倍。
      • 启用钓鱼佬称号时,钓鱼cd为3分钟,并且上钩更快!

      切换称号 0是卸下所有称号,回到默认称号。

      现已开放称号自定义添加功能,目前只有依赖本插件实现。
      未来可能会实现通过配置文件自定义添加称号。

      自定义称号功能已经实现,在data/cn.chahuyun.HuYanEconomy/title.json中编辑,插件启动后将自动扫描注册到称号列表中。
      目前只有购买一种途径获得,也没办法配置buff。

      {
        // 称号code
        "templateCode": "template",
        // 过期时间(天)
        "validityPeriod": -1,
        // 称号名称(不是称号)
        "titleName": "模板",
        // 价格 0.0
        "price": 0,
        // 是否渐变色
        "gradient": false,
        // 颜色是否影响名称
        "impactName": false,
        // 称号
        "title": "[模板]",
        // 起始颜色,当渐变关闭时,此颜色就是唯一颜色
        "sColor": "#00000",
        // 结束颜色
        "eColor": "#ffffff"
      }
      

      更多请查看TitleTemplateManager

      猜签功能

      权限code:lottery

      指令开启 猜签,关闭 猜签,猜签 (猜签号码) (猜签金额);

      本功能需要在对应群开启,本功能有高强主动发送消息动作,高风险账号慎用!

      签有3类:

      • 小签 只需要3个号码 1分钟开启一次 最大金额 1000
      • 中签 4个号码 一小时开启一次 最大金额 10000
      • 大签 5个号码 一天开启一次 最大金额 1000000

      中奖倍率

      小签:

      • 1:0.7
      • 2:6
      • 3:160

      中签:

      • 1:0.5
      • 2:2.5
      • 3:35
      • 4:1250

      大签:

      • 1:0.3
      • 2:1.4
      • 3:12
      • 4:200
      • 5:10000

      猜签顺序固定。

      钓鱼功能

      权限code:fish。

      指令开启 钓鱼,关闭 钓鱼,购买鱼竿,钓鱼,抛竿,升级鱼竿,钓鱼排行榜,钓鱼排行,钓鱼榜,鱼竿等级,刷新钓鱼,鱼塘等级;

      本功能需要开启才能使用,本功能具有高刷屏风险,如果没有高管理能力,慎用!

      钓鱼需要一把鱼竿,一把500金币,可以升级。

      鱼上钩后需要操作!

      • 向左拉|左|1 左操作
      • 向右拉|右|2 右操作
      • 收线|拉|0 收线操作
      • 放线|放|~ 放线操作
      • !|!|收|起|提|竿 收竿操作

      鱼竿等级决定最小鱼等级保底,最大鱼等级;
      鱼塘决定最大鱼等级;

      在操作的过程中会随机生成操作,你需要做对应的操作(不会提示),
      左和右决定品质系数
      收和放决定等级系数(同时受鱼竿等级影响)

      操作对会增加对应系数,失败则减少,放线会重置所有系数。

      具体鱼的信息来自于星露谷物语和群友的灵感。

      一些特定的系数和等级会固定掉到彩蛋!

      设计之初还有自定义鱼塘,目前已经鸽了很久了,

      红包功能

      在此感谢Travellerrr编写了此功能。

      指令发红包 (额度) (个数) [sj|随机],领红包 (红包id),收红包 (红包id),抢红包,红包列表,全局红包列表,开启 红包,关闭 红包;

      本功能需要在对应群开启。

      通过发红包指令发红包 100 10可以发一个均分100的10个红包,结尾加上sj或随机可以将红包改为随机红包。

      红包24小时到期,到期没有领的红包自动退回账号。

      抢劫功能

      权限code:rob。

      在此感谢Travellerrr编写了此功能。

      指令开启 抢劫,关闭 抢劫,释放出狱,抢银行,抢劫 (@id),保释 (@id),[管理员指令]平账 (@id);

      本功能需要在对应群开启。

      抢劫一个人,概率成功,概率失败。

      被抓进监狱后将无法响应大部分指令,需要保释(要钱!!)。

      你也可以抢银行!

      快快拿起你的阿卡,抢银行吧!!!

      道具功能

      指令背包,backpack,道具商店,shops,购买 (道具) (数量),buy (道具) (数量),使用 (道具) (数量),use (道具) (数量);

      道具系统有bug,并且结构设计的有点问题,目前在考虑重构,敬请期待!

      管理员指令

      指令 用处
      greedisgood (金额) 获取指定金额

      Console指令

      指令 用处
      hye v 查询壶言经济版本

      未完成的规划

      • 赌博功能
      • 抢劫功能
      • 红包功能
      • 道具功能重构
      • 增强功能间互动性
      • 教会功能

      关联插件

      • 仿BA制造的好感度插件

      建议和交流

      如果在使用本插件的时候预计bug,或是有好的建议,请优先前往github
      提issues,
      再考虑到我的插件群不是云的茶壶云(390444068)提问。img.pngimg.png

      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • RE: 没有编程基础

      可以考虑直接入手java或者kt,kt的话我这边没有推荐,
      java到是有,比较你可以跟着菜鸟一边学,一边跟着我最开始的插件对照
      我开发他的时候,也差不多是这样过来的,而且注释也比较全。
      另外有不懂的可以来不是云的茶狐云提问也行

      发布在 技术交流板块
      Moyuyanli
      Moyuyanli
    • 一个轻巧的hibernate连接模块,用于开发。

      Hibernate-plus

      名字有点张扬了

      hibrnate强化集成,用于以最小的程度连接你的数据库,为你带来最舒服的数据持久化。
      封装了常用方法,也保留了Session的获取。

      内置3种数据库驱动:
      H2
      MySQL
      Sqlit

      使用

      在你的项目中引用
      maven:

      <dependency>
        <groupId>cn.chahuyun</groupId>
        <artifactId>hibernate-plus</artifactId>
        <version>1.0.15</version>
        <type>module</type>
      </dependency>
      

      gradle:

      implementation("cn.chahuyun:hibernate-plus:1.0.15")
      

      然后创建配置文件

      //这里是你的启动类
      Configuration configuration = HibernatePlusService.createConfiguration(Test.class);
      
      configuration.setDriveType(DriveType.MYSQL);
      configuration.setAddress("localhost:3306/test");
      configuration.setAutoReconnect(true);
      configuration.setUser("root");
      configuration.setPassword("123456");
      
      //configuration.setPackageName("cc.cb.entity");
      

      对于驱动类型DriveType,目前只提供了3种类型

      • H2
      • MYSQL
      • SQLITE

      对于java插件的实现:

      EconomyConfig config = HuYanEconomy.config;
      
              Configuration configuration = HibernatePlusService.createConfiguration(economy.getClass());
              configuration.setPackageName("cn.chahuyun.economy.entity");
      
              DriveType dataType = config.getDataType();
              configuration.setDriveType(dataType);
              Path dataFolderPath = economy.getDataFolderPath();
              switch (dataType) {
                  case MYSQL:
                      configuration.setAddress(config.getMysqlUrl());
                      configuration.setUser(config.getMysqlUser());
                      configuration.setPassword(config.getMysqlPassword());
                      break;
                  case H2:
                      configuration.setAddress(dataFolderPath.resolve("HuYanEconomy.h2").toString());
                      break;
                  case SQLITE:
                      configuration.setAddress(dataFolderPath.resolve("HuYanEconomy").toString());
                      break;
              }
      
              HibernatePlusService.loadingService(configuration);
      

      对于kotlin插件的实现:

      val configuration = HibernatePlusService.createConfiguration(plugin::class.java)
      
                  configuration.classLoader = plugin::class.java.classLoader
                  configuration.packageName = "cn.chahuyun.authorize.entity"
      
                  configuration.driveType = dataType
                  when (dataType) {
                      MYSQL -> {
                          configuration.address = mysqlUrl
                          configuration.user = mysqlUser
                          configuration.password = mysqlPassword
                      }
                      H2 -> configuration.address = HuYanAuthorize.INSTANCE.dataFolderPath.resolve("authorize.h2.mv.db").toString()
                      SQLITE -> configuration.address = HuYanAuthorize.INSTANCE.dataFolderPath.resolve("authorize.mv.db").toString()
                  }
      
                  HibernatePlusService.loadingService(configuration)
      

      对于实体映射,可以填写packageName,进行指定包扫描,模板将会自动将带有Entity的实体添加到映射目录中。

      当然你也可以不填写,那么我将会根据你的ClassLoader自动扫描"entry", "entity", "entities", "model", "models", "bean", "beans", "dto"几个包名下面的实体。

      给定参数之后就可以通过HibernatePlusService来创建hibernate服务了

      HibernatePlusService.loadingService(configuration);
      

      成功后即可使用HibernateFactory来进行数据操作,我这里封装了几个常用的简单操作

      List<MyUser> myUsers = HibernateFactory.selectList(MyUser.class);
      
      log.info("==========list=============");
      
      for (MyUser myUser : myUsers) {
      log.info(myUser.toString());
      }
      
      log.info("===========================");
      
      MyUser myUser = new MyUser();
      myUser.setName("张");
      myUser.setSex(123);
      
      Integer id = HibernateFactory.merge(myUser).getId();
      
      log.info("==========one=============");
      
      MyUser selectOne = HibernateFactory.selectOne(MyUser.class, id);
      
      log.info(selectOne.toString());
      
      log.info("===========================");
      

      更复杂的操作请自行获取SessionFactory去创建。

      SessionFactory session = HibernateFactory.getSession();
      

      自定义使用

      你也可以不使用我给你的推荐配置,只需要在resources目录下填写hibernate.properties就行,然后通过

      HibernatePlusService.loadingService(Test.class);
      

      就可以使用自定义配置进行连接

      发布在 其他项目发布
      Moyuyanli
      Moyuyanli
    • RE: 2024.7.4 目前可用的mirai登陆全过程含安装插件

      赞

      发布在 使用交流
      Moyuyanli
      Moyuyanli
    • RE: [壶言3]壶言会话3-一款高度自定义的自定义回复插件

      @SnowMoonSS 好好好,厉害

      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • RE: mcl启动器整合包-内置qsign签名服务

      @XBWFDJ 版本,协议,登录方式,触发情况,日志?

      发布在 其他项目发布
      Moyuyanli
      Moyuyanli
    • RE: [壶言3]壶言会话3-一款高度自定义的自定义回复插件

      @SnowMoonSS 提个issues吧,有空我去兼容一下.

      发布在 插件发布
      Moyuyanli
      Moyuyanli
    • RE: 【每日沙雕图】沙雕小别墅

      bc3d16fa2fcd5ba9e69856fa1ba58424.png

      发布在 摸鱼区
      Moyuyanli
      Moyuyanli
    • RE: QSign 9.0.55-9.0.95(公益 API发布)

      @NakiriKajiya 认真读读帖子

      发布在 技术交流板块
      Moyuyanli
      Moyuyanli
    • RE: QSign 9.0.55-9.0.95(公益 API发布)

      先生大义!

      发布在 技术交流板块
      Moyuyanli
      Moyuyanli
    • 1
    • 2
    • 3
    • 4
    • 5
    • 12
    • 13
    • 2 / 13