Coder Social home page Coder Social logo

geniusay / chopperbot Goto Github PK

View Code? Open in Web Editor NEW
1.1K 1.1K 169.0 107.18 MB

虎牙,斗鱼,抖音,BiliBili,TikTok,Twitch🔥热门🔥智能直播视频剪辑发布AI机器人,自动化🤖,全智能化⚙(智能生成切片,标题,封面,简介),可视化👓,平台热门监控🌡,丰富插件随意扩展🕹,快速部署⚡,视频账号打造自动发布🌟,支持DIY🎮

Home Page: https://geniusay.github.io/ChopperBot-Doc/

Java 49.65% HTML 0.03% Vue 31.03% TypeScript 18.43% SCSS 0.68% Python 0.17%

chopperbot's People

Contributors

dragonsprime avatar erxiong1 avatar geniusay avatar isomd avatar lisianthusleaf avatar seasonschange422 avatar tmlgenius avatar twj666 avatar welsir avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chopperbot's Issues

[BUG] 项目启动时多次进行某模块下的热门直播获取,会出现后台报错

Current Behavior

当项目启动时进行多次模块直播访问时会出现后台报错

Steps To Reproduce

url: http://localhost:8888/hot/douyu/getHotModuleLives?moduleId=1
操作: 启动项目时访问url多次

Environment

ChopperBot v1.0.9

Debug Log

org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。
	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:351)
	at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:776)
	at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:681)
	at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:386)
	at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:364)
	at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96)
	at org.springframework.util.StreamUtils$NonClosingOutputStream.write(StreamUtils.java:287)
	at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2161)
	at com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:506)
	at com.fasterxml.jackson.databind.ser.std.StringSerializer.serialize(StringSerializer.java:41)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728)
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:755)
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
	at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
	at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)
	at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)

console-ui无法正常渲染页面

当前 chopperBot我已经从IDEA中正常启动了,可是webui 也就是console-ui无法正常渲染页面,我不知道咋回事,
我是在命令行中  进入 console-ui所在目录,  npm install 然后 npm run dev 之后运行的,并且, localhost:4399已经跑起来了,但是页面无法正常渲染. 我看到console-ui中配置了关于斗鱼的代理,
     "/douyu": {
        target: "https://www.douyu.com",
        changeOrigin: true,
        rewrite: (path) => path.replace(/^/douyu/, "/"),
于是我尝试访问 localhost:4399/douyu 是可以正常访问的, 但就是 localhost:4399无法正常渲染页面, 我不知道咋回事, 不知道能否给与帮助. 截图在下面附上. 希望能获得帮助. 谢谢

如果这个项目以及停止更新了,还望告知

 

[Enhancement] 实现ChopperBot的视频文件,弹幕文件管理浏览功能

Module

Console模块实现Controller接口

Description

为整个ChopperBot提供对项目的视频文件,弹幕文件进行可控的管理以及在线浏览功能,并提供和包装成相应的APIController接口

Requirement

一,文件管理开发要求

  • 非插件,无需封装为插件
  • 在File模块实现文件操作基本的方法:删除,获取信息,修改文件名称
  • 文件信息需要包含文件名称,文件创建时间,文件大小
  • 在对应的文件类型模块实现扩展方法,例如:弹幕文件的扩展方法在弹幕模块实现
  • 视频路径和弹幕文件路径需要根据通过获取config.json中的模块路径来获取
  • 代码开发要求具备易扩展性,可以方便后续对于其他类型的文件进行管理以及编写和重新相应的文件操作方法
  • 需要开发对于API,需要开发Controller

二,弹幕文件管理开发要求

弹幕模块文件结构如下

|-config
|-- Barrage(弹幕模块根文件夹)
|--- online (在线直播弹幕文件)
|---- douyu (平台弹幕文件夹其中包含了该平台爬取的直播弹幕文件)
  • 弹幕文件储除文件信息外需包含直播类型(直播or录播),平台信息
  • 弹幕文件路径要通过 (String) GlobalFileCache.ModuleSrcConfigFile.get("src", ConstPool.BARRAGE) 获取弹幕模块路径
  • 扩展方法:

详细展示一个弹幕文件:读取并返回一个弹幕文件中的弹幕列表,弹幕需包含(时间,弹幕内容)

三,视频文件管理开发需求

视频模块文件结构如下

|-config
|-- LiveRecord(视频模块根文件夹)
|--- online (在线直播视频文件)
|---- douyu (平台视频文件夹其中包含了该平台爬取的直播视频文件)
  • 视频文件储除文件信息外需包含直播类型(直播or录播),平台信息
  • 视频文件路径要通过 (String) GlobalFileCache.ModuleSrcConfigFile.get("src", ConstPool.LIVE_RECORD); 获取视频模块路径
  • 扩展方法:

返回视频文件,能让前端播放视频内容

[Enhancement] 弹幕热点区间算法插件

Description

根据整场直播弹幕的所有弹幕区间评分,来进行热门区间划分,获得时间区间,方便切片模块切片
模块: Barrage
依赖插件: 弹幕评分插件

Requirement

  • 配置文件设置弹幕平均分
  • 弹幕热点(评分最高点)选取
  • 设计一个算法能正确完整找到一段直播切片区间

[Enhancement] 更多斗鱼平台的爬虫方法编写

Description

目前斗鱼平台缺少一些爬虫方法需要完善
1, 斗鱼平台的直播爬取,爬取斗鱼当前的直播流并保存为视频
2, 斗鱼平台的录播爬取,爬取斗鱼某个直播间的录播并保存为视频

命名规则:
{平台}+Live+{Record|Online}

[Bug] 虎牙直播无法进行爬取 no protocol

Current Behavior

进行虎牙平台的直播下载时,无法获取正确的直播源,导致下载失败

Steps To Reproduce

操作: 使用LiveDownLoadManager进行虎牙平台的直播下载

Environment

JDK: 11
OS : Win10

Debug Log

java.net.MalformedURLException: no protocol: //tx.hls.huya.com/src/367138632-367138632-1576848417538179072-734400720-10057-A-0-1-imgplus.m3u8?ratio=2000&wsSecret=dadbcd37da4b8215968bfa449e8e4f3c&wsTime=652ed0e0&fm=RFdxOEJjSjNoNkRKdDZUWV8kMF8kMV8kMl8kMw%3D%3D&ctype=tars_mobile&fs=bgct&sphdcdn=al_7-tx_3-js_3-ws_7-bd_2-hw_2&sphdDC=huya&sphd=264_*-265_*&exsphd=264_500,264_2000,264_4000,264_10000,&t=103
	at java.base/java.net.URL.<init>(URL.java:672)
	at java.base/java.net.URL.<init>(URL.java:568)
	at java.base/java.net.URL.<init>(URL.java:515)
	at org.example.core.component.LiveStreamTask.start(LiveStreamTask.java:28)
	at org.example.core.manager.LiveDownloadManager.lambda$addTask$0(LiveDownloadManager.java:75)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
	at java.base/java.lang.Thread.run(Thread.java:832)

[Enhancement] [Web] ChopperBot消息通信框架以及消息通信插件

Description

在Chopperbot中,许多插件默默无闻的做着很多事情。对于项目内部发生了什么,只有大家看了命令窗口才能得知,但是由于cmd窗口的界面是在是太ugly了,为此需要开发一套消息通信系统和其对应的插件

Requirement

  • 开发一套消息通信框架,能方便插件等其他模块更好的进行通信框架的嵌入,
  • 不影响通信来源本身的运作
  • 通信框架采用ws开发,与前端要有良好的交互
  • 消息通信需要包含:类型,来源,内容,时间

Web Requirement

  • 消息产生时需要在屏幕右侧展示消息详细内容
  • 产生的消息需要被归档到消息组件中
    image

[Enhancement] 账号模块-账号管理功能实现

Module

账号模块

Description

实现各个平台的账号管理,用json文件对账号信息进行持久化,提供web接口能CRUD账号数据

Requirement

  • 账号信息包括:账号,密码,昵称,平台,视频推荐类型(可包含多个,并且包含逻辑),账号凭证信息(token,cookie 用于登录和视频发布功能),视频输出限制(视频数/days)
  • 视频推荐类型逻辑编写:视频推荐类型可以同时包含多种类型例如
  • 已经发布和使用的切片记录
(LOL and Funny) or (Apex and 主播:大司马)这样会为该账号推送 英雄联盟且搞笑的直播切片 或者是 与 Apex游戏大司马主播 有关的切片
  • web接口的编写,能提供所有平台所有账号的信息,同时可以对账号的推荐类型进行更改

[Enhancement] 爬虫模块-斗鱼直播弹幕爬取(ws)

Module

爬虫模块

Description

之前斗鱼的直播弹幕爬取api已经废弃,需要采用新的爬虫方式,目前经过页面分析需要构建一个基于wss的斗鱼弹幕爬虫脚本

Requirement

  • 构建斗鱼请求协议
  • 建立wss连接
  • 封装并解析回传二进制字节流,处理为Barrage对象

[Bug] DouyuFlvUrlParser 在 jdk 15的环境下异常

Current Behavior

DouyuFlvUrlParser在jdk15的环境下报错,Engine获取为null

Steps To Reproduce

将java环境换成jdk15 -> 开启 LiveFollow插件 -> 选择一个开播主播 -> 出现异常

Environment

os : win10
jdk: 15

Debug Log

5ZR7}88(8MF~EOA@IOHGT9L

Cause

Nashorn engine在后续jdk版本被移除

Requirement

希望DouyuFlvUrlParser能适配其他版本

[Enhacement] Chopperbot 数据库SQL初始化

Description

将当前的数据库封装成SQL文件,再项目启动时将读取SQL文件初始化数据库,同时要初始化各个模块的数据,方便后期开发版本同步和打包

[Web] 视频转换工具栏页面

Description

实现一个视频转换工具栏页面,能实现在线的flv转mp4,avi,webm的格式转换
放在前端页面的工具栏下

#Requirement

  • 用户点击转换,选择要转换的文件和转换格式
  • 用户下载转换后的视频文件

非必要情况下,开发尽量只涉及到前端脚本,不涉及到后端开发
如果需要设计到后端开发,请将所有格式转换方法使用策略模式包装并且开发成插件

Example

视频转换工具网站

[Enhancement] 弹幕情感分析插件开发

Description

模块: Barrage
依赖插件: 弹幕评分插件,弹幕热点区间插件
要求:

  • 对各个弹幕高分区间的情感分类
  • 把相应的情感标签贴给切片

[Bug] LiveStreamTest启动时,缺少ffmpeg报错

Current Behavior

当项目启动时出现报错,报错内容为缺少ffmpeg

Steps To Reproduce

  • 启动LiveStreamTest

Environment

ChopperBot v1.0.11

DebugLog

java.io.IOException: Cannot run program "D:\test\ffmpeg.exe": CreateProcess error=2, 系统找不到指定的文件。
	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
	at org.example.utils.VideoConverter.convertFlvToMp4(VideoConverter.java:17)
	at org.example.core.manager.TaskManager.lambda$addTask$0(TaskManager.java:60)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。
	at java.base/java.lang.ProcessImpl.create(Native Method)
	at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:487)
	at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:154)
	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
	... 8 more

[Enhancement] ChatGPT辅助插件

Description

由于有一部分智能的插件需要使用到ChatGPT来进行更好的功能实现,因此需要开发关于用户ChatGPT API Key的存储管理维护插件
便于对API Key存储,更改,开发使用。

Requirement

  • 将上述功能开发为插件
  • 在SQLite数据库中新建表来维护用户的ChatGPT API必要信息
  • 插件提供以下功能
    1,对API Key的增删改查
    2,使用GPT 进行请求并将生成结果返回,并将其包装成方法来供开发者使用
    3,提供相应API 来进行Web开发
    4,如果用户API Key不存在或者访问异常,需要返回错误信息

[Enhancement] 插件的中英文对照列表和简介

Description

为了前端能更清楚的了解插件功能,需要编写一个全局表,存储插件的中文名称和简介

Requirement

  • initregistertable类中新建一个描述表
  • plugin注解带上,中文和描述属性
  • 项目启动时自动注入到描述表中

[Enhancment] 兼容Springboot自动注入的插件类

Description

由于早期开发时的插件框架需要有插件依赖,插件环路检测考虑到springboot的DependsOn存在一定弊端所以采用的是自行编写的注解注入,但是目前开发需要兼容一些数据库框架等等,也有越来越多的地方需要用到springboot的自动注入,所以需要开发一个兼容Springboot的插件

Requirement

  1. 不改变插件启动器+插件的结构
  2. 基于原先的插件框架开发
  3. 需要注册到插件注册表,参与到环路检测
  4. 需要在spring注入后,把一些必要属性通过自定义注入类来再次注入进去

[Enhancement] 斗鱼直播弹幕爬虫完善

Description

斗鱼直播弹幕爬虫目前采用的是ws监听爬取,进入弹幕组分两步操作
1,发送login请求
2,发送joinGroup请求
但是经过目前观察,login请求和joinGroup请求的协议头的前一个字节会不断变化,导致相同的协议头可能无法进入弹幕组。

Requirement

逆向斗鱼直播弹幕js解决以上问题

[Enhancement] 视频切片插件完成

Description

完成视频的自动切片功能

Requirement

模块: Section
需求:

  • 根据弹幕的热点区间进行切片
  • 切片应该是异步执行,执行完毕后放入切片车间(一个阻塞队列orMap中)
  • 等待打上情感标签标记 (如果情感插件没有注册则无需等待打上标记)
  • 送入切片处理队列

[Enhancement] 完善虎牙平台的爬虫脚本

Description

完善虎牙平台的所有爬虫脚本,实现虎牙平台爬虫自动化

Requirement

  • 接入ChopperBot的爬虫框架,实现虎牙爬虫自动化流程
  • 为所有脚本添加爬虫功能组
  • 完成虎牙开播检测脚本
  • 完成虎牙直播爬取脚本
  • 完成虎牙弹幕爬取脚本
  • 完成虎牙热门模块脚本
  • 完成虎牙热门直播脚本
  • 完成虎牙模块直播脚本

[Enhancement] 整合SQLite

Description

由于考虑到之后可能会有一些爬虫数据要处理,所以现在ChopperBot需要整合一个轻量级的嵌入式数据库SQLite

[Enhancement] 非必要插件启动异常忽略

Description

在某些非系统必须插件启动时,即使启动失败了也可以正常启动项目

Requirement

  • 可以提供一个ignore字段,如果ignore字段为true则忽略启动失败
  • 被忽略启动的插件不能注册进入插件注册表

[Tutorial] 前端页面开发指南

主要文件明确

  • api: 存放后端访问api文件
  • configs/menus: 不同模块下的侧边栏目录

apps: 插件模块目录
settings: 设置模块目录
datas: 数据模块目录

  • router: 路由
    1U6TUG0ZB98@IS@$~%8O 3D
  • locales: i18n本地化语言文件

en.ts: 英文本地化
ja.ts: 日文本地化
zhHans.ts 中文本地化

  • views: 主要页面文件夹

如何在该前端框架下编写一个简单的页面

1. 首先打开configs/menus文件夹,在其中找到你要开发的页面的对应目录

_0}YU5M`IY3HYD6$EU7VOMS
在其中写下您对应的代码

{
    icon: "mdi-format-list-checkbox", //图标类型
    key: "menu.todo",   //key值,这里需要在i18n文件夹中创建您的key值,稍后会介绍
    text: "Todo",            //该页面的名称,例如: Upload,Video等等
    link: "/apps/todo",  //该页面的url连接
  },

如果您需要更多图标可以去该网址查看 MDI

2. 编写你的语言文件

去到locales文件夹下根据你的key名称编写中文本地化文件和英文本地化文件

例如:你的key名称为 "menu.search"那就请在en.ts和zhHans.ts的文件中写下对应的中文和英文
image
image

3. 编写路由文件

根据你开发的模块页面找到对应的路由进行编写

例如: 你要编写的页面是 apps下的 board页面,拿米请在router路由下找到 apps.routes.ts文件进行如下编写

{
   path: "/apps/board",  //该页面的url连接,请和步骤1中的link一致
   name: "app-board",   //路由名称。请使用[模块+名称]的格式,例: ChopperBot则为 app-chopper-bot
   component: () =>
     import(
       /* webpackChunkName: "utility-board" */ "@/views/utility/BoardPage.vue" 
     ),
   meta: {
     requiresAuth: true,
     title: "Board", //标题名称
     layout: "ui", 
     category: "APP",
   },
 },

4.构建你的页面文件

根据你要开发的模块页面构建你的页面文件
TTP04VM8 V9T%EK`}N4 9P

[Enhancement] 直播关注插件

Module

Hot

Description

关注插件
1.输入主播名字或者房间id,获取主播信息
1.5 关注配置,是否自动爬取录播,自动爬取直播
2.关注主播存储至sqlite
3.开播检测,每分钟实时检测主播是否开播

[Web] 插件页面的自启动功能

Description

插件页面添加自启动滑块,点击后触发以下功能

  1. 如果是开启状态,点击一下变为关闭状态,并向后端发送请求
  2. 如果是关闭状态,点击一下变为开启状态,并向后端发送请求

Api

url: /plugin/switchAutoStart
method:Get
params:{
    plugin:String //插件名字
    isOpen:Boolean //是否开启 false对应关闭,true对应开启
}
return:{
    success:Boolean //true代表修改成功,false代表修改失败
}

WebPage

src: ./view/setting/plugin/component/PluginList.vue

Requirement

  1. 操作后,需要有成功或者失败提示信息
  2. 需要有标识标明这是自启动开关,要和插件启动开关做区分

vite build console-ui报错

报错提示如下, 我是从git clone这个项目下来, 然后单独吧console-ui复制出来的,我想这应该不会是这个问题的起因, 同时我也在网上查查,如果解决,我将关闭这个 issues

image

[Web] 插件页面编写

Description:

编写一个插件管理页面

Requirement

  • 能查看所有插件
  • 查看模块下的插件
  • 查看插件注册情况
  • 启动和关闭插件
  • 设置插件启动项

Web Ui

None

[Web] OpenApi插件页面开发

Descrption

文件名称: apikey
目录中文名: Api Key
目录英文名: Api Key
模块: apps
接口地址: Api文档
需求: 展示插件数据的基本消息,能进行基本的增删改查

Requirement

  • 展示所有key的基本信息(key,url,model,function),function列需要用特别标注

参考页面
image

  • 添加key的时候,function为下拉框,只能根据 接口 /gpt/functions/中的内容进行选择

Reference

推荐直接根据 HotGuard插件页面进行修改开发
文件路径: /views/hot/hot_guard/
image

[Enhancement] 账号模块页面开发

目前账号模块已经实现接口:

  1. 用户登录接口: /login/{platformId} 参数:平台ID
  2. 根据平台ID获取所有用户: /getUser/{platformId} 参数:平台ID
  3. 获取所有用户: /getUser
  4. 修改用户信息: /edit 参数:Account实体类

[Enhancement] 账号模块-切片推送通道插件

Module

账号模块

Description

ChopperBot自动切片好的视频内容会根据其标签提供给对应的账号,每个账号需要为切片内容推送构建

(可参考rabbitmq 中 订阅交换机的设计)

Expected design

Componet

  • 广播中心:当接收到切片的时候进行广播,通知每一个通道有新的切片
  • 类型通道:用于传输切片,包含自己的类型,绑定多个账号

流程:
1,广播中心接收到新切片
2,通知各个通道有新的切片
3,通道根据类型和自身条件进行判断是否接收该切片
4,接收切片,并推送至通道下的所有账号

Requirement

  • 该插件为独立插件,即使没有切片推送通道,账号模块也可以运作。
  • 通道根据账号的推荐类型,进行建立,如果有账号有严格一致的推荐类型(推送标签一致,平台一致)则共享该通道
  • 构建的通道需要有特殊属性:推送标签,平台等等
  • 广播中心需要启动恢复功能,比如开机的时候 有之前还没来得及处理的切片,需要重新广播

[Enhancement] 弹幕评分插件

Description

结合配置文件给当场直播的弹幕情况打分

Requirement

  • 结合配置文件,过滤相关弹幕
  • 定义弹幕区间
  • 给每个区间进行打分
  • 给每个区间进行排序

关于ChopperBot如何添加投稿账号的问题

image

项目基本跑起来了,看到也可以添加主播,和类似订阅热门的主播,我这边有个问题就是,看到项目简介里面是有自动投稿的功能的,但是我没找到对应的账号登录的地方,请问对应的位置在哪里呢,或者说应该如何正确添加。类似biliup那种添加类似cookies.json文件。期待您的回复。

[BUG] 删除config目录后,项目无法正常启动

Current Behavior

删除.config目录后,项目无法启动

Steps To Reproduce

1,删除config目录
2,启动项目

Environment

ChopperBot v1.0.9

Debug Log

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'initWorld': Invocation of init method failed; nested exception is java.lang.ExceptionInInitializerError
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:415)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1791)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
	at org.example.ConsoleApplication.main(ConsoleApplication.java:16)
Caused by: java.lang.ExceptionInInitializerError: null
	at org.example.config.CreeperConfigFile.<clinit>(CreeperConfigFile.java:17)
	at org.example.init.CreeperConfigInitMachine.<init>(CreeperConfigInitMachine.java:23)
	at org.example.init.CreeperModuleInitMachine.<init>(CreeperModuleInitMachine.java:21)
	at org.example.init.WorldInitMachine.<init>(WorldInitMachine.java:19)
	at org.example.init.InitWorld.init(InitWorld.java:32)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
	... 19 common frames omitted

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.