Skip to content

Commit 3ff2cef

Browse files
committed
[1.3.0] Update
1 parent f70e7f8 commit 3ff2cef

27 files changed

Lines changed: 591 additions & 136 deletions

README.md

Lines changed: 160 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,160 @@
1-
## ItsTools
2-
3-
- Control resource packs
4-
- Upload to COS or OSS
5-
- Modify entity AI
6-
- Edit item simply
7-
- Many useful features
8-
- And more...
1+
# ItsTools
2+
3+
## 插件简介
4+
5+
**ItsTools** 是一个整合了许多实用功能的,基于TabooLib VI的插件
6+
7+
绝对支持**1.19.x-1.20.x**,理论支持1.8-1.17.x
8+
9+
插件主命令:
10+
- /itstools, /it 常规功能命令 (itstools.access)
11+
12+
- /itsoperation, /io 有关生物操作命令 (itstools.access)
13+
14+
## 详细介绍
15+
16+
### 资源包管理模块
17+
18+
#### 资源包发送管理
19+
20+
支持定义无限制个资源包
21+
22+
每个资源包均可以设置成功加载、拒绝加载、加载失败、接受下载、移除时的Kether动作
23+
24+
还可以为每个世界设置自动加载材质包
25+
26+
**命令**:
27+
- /itstools rp get <id> 获取材质包 (权限由材质包配置确定)
28+
- /itstools rp send <player> <id> 向玩家发送材质包 (itstools.command.resourcepack.send)
29+
30+
#### 资源包上传管理
31+
32+
让你在服务器里就能更新材质包
33+
34+
目前支持阿里云oss和腾讯云cos (详细配置见文末)
35+
36+
默认读取插件目录下packs文件夹中的文件
37+
38+
支持直接上传ItemsAdder生成的材质包
39+
40+
命令:
41+
- /itstools rp upload oss <pack> 上传至阿里云存储桶 (itstools.command.resourcepack.upload)
42+
- /itstools rp upload oss <pack> 上传至腾讯云存储桶 (itstools.command.resourcepack.upload)
43+
44+
PlaceholderAPI变量
45+
- %itstools_rp_<id>% 获取玩家是否使用这个材质包
46+
- %itstools_rp% 获取玩家当前应用的材质包
47+
48+
### 快捷键模块
49+
50+
包含了大部分常用的玩家快捷操作
51+
52+
使用Kether动作,可配置性极高
53+
54+
- 切换副手(F)类:Shift + F, 抬头F, 低头F
55+
- 丢弃物品(Q)类:Shift + Q, 抬头Q, 低头Q
56+
- 互动玩家类: 点击玩家,潜行点击玩家 (支持变量&clicked获取点击玩家名)
57+
58+
59+
### 插件联动模块
60+
61+
- 为AttributeSystem提供原版装备护甲值转换 (Beta)
62+
- 为Sandalphon提供ItemsAdder物品源支持
63+
- 为eco提供Zaphkiel物品源支持 (zaphkiel:id
64+
- 为RealisticSeasons提供可变色时间条 (支持`SimpleComponent`)
65+
66+
### 调试模块
67+
68+
#### 命令
69+
70+
- /itsoperation addpotion <potion> [args] 为生物添加药水效果 (itstools.command.addpotion)
71+
```
72+
[args]
73+
-duration, -d: 时长
74+
-amplifier, -a: 等级
75+
--ambient: 信标效果
76+
--p: 有粒子效果
77+
--i: 有图标
78+
```
79+
- /itsoperation makemeleehostile [args] 为生物添加攻击ai (itstools.command.makemeleehostile)
80+
```
81+
[args]
82+
-damage, -d: 伤害
83+
-speed, -s: 速度
84+
-target, -t: 目标 (Entityxxx)
85+
-priority, -p: ai优先级
86+
--f: 强制锁定目标
87+
```
88+
- /itsoperation removegoal <goal> 移除生物指定的动作ai (itstools.command.removegoal)
89+
- /itsoperation removegoal <goal> 移除生物指定的目标ai (itstools.command.removetarget)
90+
- /itsoperation getgoal 获取生物所有的动作ai (itstools.command.getgoal)
91+
- /itsoperation gettarget 获取生物所有的目标ai (itstools.command.gettarget)
92+
- /itsoperation togglegravity 切换生物是否受重力 (itstools.command.togglegravity)
93+
94+
#### 调试工具
95+
96+
使用/itstools getdebugitem (itstools.command.getdebugitem)获取调试工具
97+
98+
使用F键切换模式
99+
100+
- 功能一: 获取生物的UUID (GET_ENTITY_UUID)
101+
- 功能二: 为生物设置寻路 (使用方法:先用NAVIGATE模式选定生物,再右键方块)
102+
- 功能三: 为生物设置目标(使用方法:先用工具选定生物,再使用/itsoperation settarget右键其他生物)
103+
104+
### 其他特性
105+
106+
#### 命令
107+
- /itstools reload 重载插件 (itstools.command.reload)
108+
- /itstools forcechat <玩家> <消息> 强制玩家聊天 (itstools.command.forcechat)
109+
- /itstools simplekether <args> 通过命令执行Kether动作 (itstools.command.simplekether)
110+
```
111+
<args>
112+
-source: 动作文本
113+
-namespace: 命名空间
114+
-sender: 发送者
115+
```
116+
117+
##### lore命令 (itstools.command.lore)
118+
- /itstools lore append <文字> 为物品添加lore
119+
- /itstools lore insert <行数> <文字> 为物品在指定行数插入lore
120+
- /itstools lore pop [行数] 为物品删除一行lore
121+
122+
##### 发送成就提示(toast)命令 (itstools.command.sendtoast)
123+
- /itstools sendtoast <玩家> <类型> <材质> <内容>
124+
125+
##### 发送地图画(图片)命令 (itstools.command.sendmap)
126+
- /itstools sendmap file <玩家> <文件路径> 通过本地文件发送图片
127+
- /itstools sendmap url <玩家> <url> 通过网络资源发送图片
128+
129+
##### 设置光源命令 (不保证可用) (itstools.command.light)
130+
- /itstools light create <SKY/BLOCK/BOTH> <强度> 为方块创建光源
131+
- /itstools light delete <SKY/BLOCK/BOTH> 为方块删除光源
132+
133+
#### ~~IP属地~~ (待修复)
134+
135+
从在线API获取并缓存到本地
136+
该功能需要配合PlaceholderAPI使用
137+
138+
```
139+
%itstools_ip_country% 国家
140+
%itstools_ip_shortname% 国家缩写
141+
%itstools_ip_province% 省份
142+
%itstools_ip_city% 城市
143+
%itstools_ip_area% 更精确的位置(不准确)
144+
%itstools_ip_isp% 供应商
145+
```
146+
147+
配合聊天插件显示效果
148+
![](https://attachment.mcbbs.net/data/myattachment/forum/202212/21/165342bpwgw7wr5wwjrmvr.png)
149+
150+
#### 烟花苦力怕
151+
152+
将苦力怕爆炸替换为不破坏地形的烟花爆炸
153+
154+
烟花所有特效均随机生成
155+
156+
#### 混淆种子
157+
158+
#### 移除锋利粒子
159+
160+
#### 虚空生成器

build.gradle.kts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
plugins {
22
`java-library`
3-
id("io.izzel.taboolib") version "1.51"
4-
id("org.jetbrains.kotlin.jvm") version "1.7.20"
3+
id("io.izzel.taboolib") version "1.56"
4+
id("org.jetbrains.kotlin.jvm") version "1.9.0"
55
}
66

77
taboolib {
@@ -32,29 +32,29 @@ taboolib {
3232
install("platform-bukkit")
3333
install("expansion-command-helper", "expansion-javascript")
3434
classifier = null
35-
version = "6.0.10-31"
35+
version = "6.0.12-35"
3636
}
3737

3838
repositories {
39+
mavenLocal()
3940
mavenCentral()
40-
// mavenLocal()
4141
maven("https://jitpack.io")
4242
maven("https://repo.papermc.io/repository/maven-public/")
43+
maven("https://repo.rosewooddev.io/repository/public/")
4344
}
4445

4546
dependencies {
4647
// compileOnly("public:ModelEngine:3.0.0")
4748
compileOnly("com.willfp:eco:6.35.1")
4849
compileOnly("com.github.LoneDev6:api-itemsadder:3.2.5")
49-
compileOnly("com.github.oraxen:oraxen:-SNAPSHOT")
50+
// compileOnly("com.github.oraxen:oraxen:-SNAPSHOT")
51+
compileOnly("me.casperge:realisticseasons:8.1.3")
5052
compileOnly("ink.ptms:Zaphkiel:2.0.14")
5153

54+
compileOnly("ink.ptms.core:v12002:12002:mapped")
55+
compileOnly("ink.ptms.core:v12002:12002:universal")
5256
compileOnly("ink.ptms:nms-all:1.0.0")
53-
compileOnly("ink.ptms.core:v11903:11903:mapped")
54-
compileOnly("ink.ptms.core:v11903:11903:universal")
5557

56-
// compileOnly("io.netty:netty-all:5.0.0.Alpha2")
57-
// compileOnly("com.mojang:authlib:1.5.25")
5858
compileOnly("com.electronwill.night-config:core:3.6.5")
5959
compileOnly("com.google.code.gson:gson:2.9.0")
6060
compileOnly("com.google.guava:guava:31.1-jre")

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
group=io.github.itsflicker.itstools
2-
version=1.2.3
2+
version=1.3.0
1.73 MB
Binary file not shown.

libs/Pouvoir-1.6.1-12-api.jar

9.84 MB
Binary file not shown.

src/main/kotlin/io/github/itsflicker/itstools/ItsTools.kt

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@ package io.github.itsflicker.itstools
22

33
import com.willfp.eco.core.items.Items
44
import ink.ptms.sandalphon.Sandalphon
5-
import io.github.itsflicker.itstools.module.feature.IPInfo
65
import io.github.itsflicker.itstools.module.feature.Void
76
import io.github.itsflicker.itstools.module.integration.itemsadder.ItemsAdderItemAPI
87
import io.github.itsflicker.itstools.module.integration.zaphkiel.ZaphkielItemProvider
9-
import io.github.itsflicker.itstools.util.isEcoHooked
10-
import io.github.itsflicker.itstools.util.isItemsAdderHooked
11-
import io.github.itsflicker.itstools.util.isSandalphonHooked
12-
import io.github.itsflicker.itstools.util.isZaphkielHooked
8+
import io.github.itsflicker.itstools.util.*
9+
import org.bukkit.Bukkit
1310
import org.bukkit.generator.ChunkGenerator
1411
import taboolib.common.env.RuntimeDependencies
1512
import taboolib.common.env.RuntimeDependency
@@ -21,6 +18,7 @@ import taboolib.module.configuration.Configuration
2118
import taboolib.module.configuration.Configuration.Companion.toObject
2219
import taboolib.module.metrics.Metrics
2320
import taboolib.platform.BukkitWorldGenerator
21+
import taboolib.platform.util.bukkitPlugin
2422
import taboolib.platform.util.onlinePlayers
2523

2624
/**
@@ -46,6 +44,12 @@ object ItsTools : Plugin(), BukkitWorldGenerator {
4644
reload()
4745
}
4846

47+
override fun onEnable() {
48+
if (!Bukkit.getMessenger().isOutgoingChannelRegistered(bukkitPlugin, "BungeeCord")) {
49+
Bukkit.getMessenger().registerOutgoingPluginChannel(bukkitPlugin, "BungeeCord")
50+
}
51+
}
52+
4953
override fun onActive() {
5054
Metrics(12296, pluginVersion, Platform.BUKKIT)
5155

@@ -56,7 +60,14 @@ object ItsTools : Plugin(), BukkitWorldGenerator {
5660
Sandalphon.registerItemAPI(ItemsAdderItemAPI())
5761
}
5862

59-
onlinePlayers.forEach { IPInfo.cacheFromCloud(it) }
63+
// onlinePlayers.forEach { IPInfo.cacheFromCloud(it) }
64+
}
65+
66+
override fun onDisable() {
67+
onlinePlayers.forEach {
68+
nms.removeBossBar(it)
69+
}
70+
Bukkit.getMessenger().unregisterOutgoingPluginChannel(bukkitPlugin)
6071
}
6172

6273
override fun getDefaultWorldGenerator(worldName: String, name: String?): ChunkGenerator {
Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package io.github.itsflicker.itstools.api
22

3+
import org.bukkit.boss.BarColor
4+
import org.bukkit.boss.BarStyle
35
import org.bukkit.entity.LivingEntity
46
import org.bukkit.entity.Player
7+
import taboolib.module.chat.ComponentText
58

69
/**
710
* NMS
@@ -12,16 +15,29 @@ import org.bukkit.entity.Player
1215
*/
1316
abstract class NMS {
1417

15-
abstract fun addGoalAi(entity: LivingEntity, priority: Int, pathfinderGoal: Any)
16-
17-
abstract fun addTargetAi(entity: LivingEntity, priority: Int, pathfinderGoal: Any)
18-
1918
abstract fun getTargetEntity(entity: LivingEntity): LivingEntity?
2019

2120
abstract fun setTargetEntity(entity: LivingEntity, target: LivingEntity?)
2221

23-
abstract fun makeMeleeHostile(entity: LivingEntity, damage: Double? = null, speed: Double = 1.0, priority: Int = 2, type: String = "EntityHuman", followingTargetEvenIfNotSeen: Boolean = false)
22+
abstract fun makeMeleeHostile(
23+
entity: LivingEntity,
24+
damage: Double? = null,
25+
speed: Double = 1.0,
26+
priority: Int = 2,
27+
type: String = "EntityHuman",
28+
followingTargetEvenIfNotSeen: Boolean = false
29+
)
2430

2531
abstract fun sendResourcePack(player: Player, url: String, hash: String)
2632

33+
abstract fun addBossBar(player: Player, name: ComponentText, color: BarColor, style: BarStyle)
34+
35+
abstract fun removeBossBar(player: Player)
36+
37+
abstract fun updateBossBar(player: Player, progress: Float)
38+
39+
abstract fun updateBossBar(player: Player, name: ComponentText)
40+
41+
abstract fun updateBossBar(player: Player, color: BarColor)
42+
2743
}

0 commit comments

Comments
 (0)