Skip to content

Commit 17fb883

Browse files
committed
update to 1.21.130
1 parent da5026c commit 17fb883

86 files changed

Lines changed: 2739 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1.21.130/1.21.130.MD

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## Minecraft Addon Version 1.21.130
2+
This is all Addon/Script support Minecraft over Version 1.21.130!
3+
4+
note:
5+
1.21.111 > 1.21.130
6+
7+
```json
8+
"version": [1,21,111]
9+
10+
"version": [1,21,130]
11+
```
12+
13+
<!-- // server \\ -->
14+
"version": "2.5.0-beta" > "version": "2.5.0-beta"
15+
16+
<!-- // server-ui \\ -->
17+
"version": "2.1.0-beta" > "version": "2.1.0-beta"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"values": ["warn"]}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
execute unless score counter "aitjilib" matches ..99999 run scoreboard objectives add "aitjilib" dummy
2+
execute unless score counter "aitjilib" matches ..99999 run scoreboard players set counter "aitjilib" 80
3+
execute unless score counter "aitjilib" matches ..99999 run scoreboard players set addon "aitjilib" 0
4+
execute unless score counter "aitjilib" matches ..99999 run scoreboard players set heartbeat "aitjilib" 0
5+
execute unless score counter "aitjilib" matches ..99999 run scriptevent aitji-lib:heartbeat
6+
7+
execute unless score heartbeat "aitjilib" matches 1 run scriptevent aitji-lib:heartbeat All Chat
8+
execute unless score heartbeat "aitjilib" matches 1 run scoreboard players set heartbeat "aitjilib" 1
9+
10+
scoreboard players remove counter "aitjilib" 1
11+
execute if score addon "aitjilib" matches 2.. run scoreboard players operation counter "aitjilib" += addon "aitjilib"
12+
execute if score addon "aitjilib" matches 2.. run scoreboard players remove counter "aitjilib" 1
13+
14+
execute unless score api "aitjilib" matches 1 if score counter "aitjilib" matches ..0 run tellraw @a {"rawtext":[{"translate":"§c§c@aitji Library §l§cไม่สามารถ§r§7ติดตั้งแอดออนได้\n\nกรุณา§cเปิด Beta APIs§7 เพื่อให้แอดออนนี้สามารถใช้งานได้\nหากเปิดแล้วแต่ยังเห็นข้อความนี้ กรุณาอัพเดท§cแอดออน§r"}]}
15+
execute unless score api "aitjilib" matches 1 if score counter "aitjilib" matches ..0 run tellraw @a {"rawtext":[{"translate":"§7หรือหากต้องการข้อมูลเพิ่มเติมสำหรับการลงแอดออน §caitji.is-a.dev/support#how-do-i-install-x-addon\n§7ผู้ทำแอดออน §caitji §7(1.21.130)\n \n§7ติดต่อปัญหาได้ที่ §caitji.is-a.dev/discord\n§7----------------------------"}]}
16+
17+
execute unless score api "aitjilib" matches 0 if score counter "aitjilib" matches ..0 run scoreboard players set api "aitjilib" 0
18+
execute if score counter "aitjilib" matches ..0 run scoreboard players set counter "aitjilib" 300
19+
20+
scoreboard players set addon "aitjilib" 0
21+
scoreboard players set heartbeat "aitjilib" 0
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"format_version": "1.20.30",
3+
"minecraft:item": {
4+
"description": {
5+
"identifier": "aitji:allchat",
6+
"category": "Items"
7+
},
8+
"components": {
9+
"minecraft:max_stack_size": 1,
10+
"minecraft:can_destroy_in_creative": false,
11+
"minecraft:glint": true,
12+
"minecraft:icon": {"texture": "paper"},
13+
"minecraft:display_name": {
14+
"value": "§l§cAll Chat's§r§f Setting!"
15+
}
16+
}
17+
}
18+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"format_version": 2,
3+
"header": {
4+
"name": "§bAll §fChat",
5+
"description": "§cYouTube: §fAitJi Gamer\nScript Version: §a1.21.130§r",
6+
"uuid": "24e1ded1-5a1c-49a2-a201-da985c71858e",
7+
"version": [1,21,130],
8+
"min_engine_version": [1, 21, 100]
9+
},
10+
"metadata": {
11+
"authors": ["aitji."],
12+
"url": "https://www.youtube.com/channel/UCphyxbOnunOu0FcNLYPPXJw?sub_confirmation=1"
13+
},
14+
"modules": [{
15+
"type": "data",
16+
"uuid": "c7a53b4a-4104-4312-87c9-0fd815987393",
17+
"version": [1,0,0]
18+
},
19+
{
20+
"type": "script",
21+
"language": "javascript",
22+
"description": "§cYouTube: §fAitJi Gamer\nScript Version: §a1.21.130§r",
23+
"uuid": "d7da681a-5c2c-4951-bcf5-e1951fc267f1",
24+
"entry": "scripts/main.js",
25+
"version": [1,0,0]
26+
}
27+
],
28+
"dependencies": [{
29+
"module_name": "@minecraft/server",
30+
"version": "2.5.0-beta"
31+
},
32+
{
33+
"module_name": "@minecraft/server-ui",
34+
"version": "2.1.0-beta"
35+
}
36+
]
37+
}
25 KB
Loading
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import { world, system, Player, ScoreboardIdentityType } from "@minecraft/server";
2+
/** _______________________________________________________________ */
3+
/**
4+
* @param {String} objective
5+
* @param {Player | String} target
6+
* @param {Boolean} useZero
7+
* @returns {Number}
8+
*/
9+
export function getScore(objective, target, useZero = true) {
10+
try {
11+
const obj = world.scoreboard.getObjective(objective) || world.scoreboard.addObjective(objective, objective)
12+
if (typeof target == 'string') {
13+
return obj.getScore(obj.getParticipants().find(v => v.displayName == target)) || 0
14+
}
15+
return obj.getScore(target.scoreboardIdentity) || 0
16+
} catch {
17+
return useZero ? 0 : NaN
18+
}
19+
}
20+
/** _______________________________________________________________ */
21+
/**
22+
* @param {Player} pl
23+
* @returns {String}
24+
*/
25+
export function color(pl) {
26+
const colors = ['f', '0', 'g', 'e', '4', 'c', '6', '5', 'd', '1', '9', '3', 'b', '2', 'a', '8', '7', 'h', 'i', 'j', 'm', 'n', 'p', 'q', 's', 't', 'u', 'v']
27+
const user = Math.abs(getScore("color", pl) || 0) % colors.length
28+
return '§' + colors[user]
29+
}
30+
/** _______________________________________________________________ */
31+
/**
32+
* @param {String} objectiveId
33+
* @returns {Array}
34+
*/
35+
export function getFakePlayer(objectiveId) {
36+
return world.scoreboard
37+
.getObjective(objectiveId)
38+
.getParticipants()
39+
.filter(data => data.type === ScoreboardIdentityType.FakePlayer)
40+
.map(data => data.displayName)
41+
}
42+
/** _______________________________________________________________ */
43+
/**
44+
* @param {String} scoreboardName
45+
* @returns {null}
46+
*/
47+
export function createScore(scoreboardName) {
48+
if (world.scoreboard.getObjective(scoreboardName)) return
49+
world.scoreboard.addObjective(scoreboardName, scoreboardName)
50+
}
51+
/** _______________________________________________________________ */
52+
/**
53+
* @param {Number} data
54+
* @returns {Boolean}
55+
*/
56+
export const toBool = v => v === 1 || v === true
57+
/** _______________________________________________________________ */
58+
/**
59+
* @param {Boolean} data
60+
* @returns {Number}
61+
*/
62+
export function boolTo(data) {
63+
if (data === false) return 0
64+
if (data === true) return 1
65+
return 0
66+
}
67+
/** _______________________________________________________________ */
68+
/**
69+
* @param {Player} pl1
70+
* @param {Player} pl2
71+
* @returns {Number}
72+
*/
73+
export function CalDistance(pl1, pl2) {
74+
const dx = pl1.x - pl2.x;
75+
const dy = pl1.y - pl2.y;
76+
const dz = pl1.z - pl2.z;
77+
78+
return Math.sqrt(dx * dx + dy * dy + dz * dz);
79+
}
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
import { Player, system, world } from '@minecraft/server'
2+
import { ActionFormData, MessageFormData, ModalFormData } from '@minecraft/server-ui'
3+
import { boolTo, getFakePlayer, getScore, toBool } from './function'
4+
5+
/**@param {Player} pl*/
6+
export function anti_spam(pl) {
7+
let text, cps
8+
try {
9+
const setting = getFakePlayer('chatsettings')
10+
text = setting
11+
.filter(s => s.startsWith('text:'))
12+
.join('')
13+
.split(':')[1] || 'Hey Hey Slow Down please'
14+
cps = getScore('chatsettings', 'cps', true) || 0
15+
} catch { }
16+
17+
const form = new ModalFormData()
18+
form.title(`[§r §lServer Anti Spam§r ]`)
19+
form.slider(`§c§l»§r§c Subscribe §f@aitji.§r\n\n§e§l» §r§fดีเลย์ของ§eแชทต่อวินาที§r`, 0, 10, { valueStep: 1, defaultValue: Number(cps) || 0, tooltip: 'นี่คือดีเลย์ของผู้เล่นในการส่งข้อความในแชท' })
20+
form.textField(`§c§l» §r§fข้อความเตือนเมื่อ§cสแปม`, `ex: Hey Hey Slow Down please`, { defaultValue: text || 'Hey Hey Slow Down please', tooltip: 'ข้อความนี้จะถูกส่งไปยังผู้เล่นเมื่อสแปมแชท' })
21+
22+
form.show(pl).then(({ canceled, formValues }) => {
23+
if (canceled) return
24+
const chatsettings = world.scoreboard.getObjective('chatsettings') || world.scoreboard.addObjective('chatsettings', 'Chat Settings')
25+
26+
chatsettings.getParticipants().forEach(p => chatsettings.removeParticipant(p))
27+
chatsettings.setScore('cps', Number(formValues[0]))
28+
chatsettings.setScore(`text:${formValues[1]}`, 1)
29+
pl.sendMessage(`§fAntiSpam is now §aSaved!§r`)
30+
})
31+
}
32+
33+
/**@param {Player} pl*/
34+
export function rank_chat(pl) {
35+
let chatprefix, chatdef
36+
try {
37+
const setting = getFakePlayer('rankchat')
38+
chatprefix = setting
39+
.filter(x => x.startsWith('chatprefix⌁'))
40+
.join('')
41+
.split('⌁')[1] || 'rank:'
42+
chatdef = setting
43+
.filter(x => x.startsWith('chatdef⌁'))
44+
.join('')
45+
.split('⌁')[1] || '§7Player'
46+
} catch { }
47+
48+
const form = new ModalFormData()
49+
form.title(`§l§8» §rRankChat §l§8«`)
50+
form.textField(`§c§l»§r§c Subscribe §f@aitji.§r\n\n§l§a»§r §fคำนำหน้า(Prefix) ของ §aRank Chat`, `ex: "${chatprefix}"`, { defaultValue: chatprefix })
51+
form.textField(`§l§e»§r§e Rank §fเริ่มต้นของผู้เล่น`, `ex: "${chatdef}"`, { defaultValue: chatdef })
52+
form.show(pl).then(({ canceled, formValues }) => {
53+
if (canceled) return
54+
55+
const [valPrefix, valDef] = formValues
56+
if (!valPrefix || !valDef) return pl.sendMessage(`§l§7| §r§fกรุณากรอก§eข้อมูล§fให้ครบถ้วน`)
57+
const rankchat = world.scoreboard.getObjective('rankchat') || world.scoreboard.addObjective('rankchat', 'Rank Chat')
58+
59+
rankchat.getParticipants().forEach(p => rankchat.removeParticipant(p))
60+
rankchat.setScore(`chatprefix⌁${valPrefix}`, 1)
61+
rankchat.setScore(`chatdef⌁${valDef}`, 1)
62+
pl.sendMessage(`§fRank Chat is now §aSaved!§r`)
63+
})
64+
}
65+
66+
/**@param {Player} pl*/
67+
export function chat_room(pl) {
68+
let kingTag, allSeeAdmin, adminSeeAll
69+
try {
70+
const setting = getFakePlayer('chatroomSetting')
71+
kingTag = setting
72+
.filter(x => x.startsWith('kingTag⌁'))
73+
.join('')
74+
.split('⌁')[1] || 'king'
75+
allSeeAdmin = toBool(getScore('chatroomSetting', 'allSeeAdmin', true)) || false
76+
adminSeeAll = toBool(getScore('chatroomSetting', 'adminSeeAll', true)) || false
77+
} catch { }
78+
79+
const form = new ModalFormData()
80+
form.title(`§l§8» §rChat Room §l§8«`)
81+
form.textField(`§c§l»§r§c Subscribe §f@aitji.§r\nChatRoom §aKingTag`, `ex: "${kingTag}"`, { defaultValue: kingTag })
82+
form.toggle(`§e»§f ทุกคนเห็นข้อความของ §e${kingTag}`, { defaultValue: allSeeAdmin })
83+
form.toggle(`§e» §e${kingTag} §fเห็นข้อความของทุกคน`, { defaultValue: adminSeeAll })
84+
form.show(pl).then(({ canceled, formValues }) => {
85+
if (canceled) return
86+
87+
const [king, seeAll, adminSee] = formValues
88+
const obj = world.scoreboard.getObjective('chatroomSetting') || world.scoreboard.addObjective('chatroomSetting', 'Chat Room Setting')
89+
90+
obj.getParticipants().forEach(p => obj.removeParticipant(p))
91+
obj.setScore('allSeeAdmin', Number(boolTo(seeAll)))
92+
obj.setScore('adminSeeAll', Number(boolTo(adminSee)))
93+
obj.setScore(`kingTag⌁${king || 'king'}`, 0)
94+
pl.sendMessage(`§fChat Room is now §aSaved!§r`)
95+
})
96+
}
97+
98+
/**@param {Player} pl*/
99+
export function near_chat(pl) {
100+
let chatRang, messageBool, AdminBool, TellAdminBool
101+
try {
102+
messageBool = toBool(getScore('chatDistance', 'messageToggle', true)) || false
103+
AdminBool = toBool(getScore('chatDistance', 'AdminToggle', true)) || false
104+
chatRang = getScore('chatDistance', 'chatRang', true) || 15
105+
TellAdminBool = toBool(getScore('chatDistance', 'TellAdminToggle', true)) || false
106+
} catch { }
107+
chatRang = chatRang < 1 ? '15' : chatRang
108+
109+
const form = new ModalFormData()
110+
form.title(`§l§8» §rNearChat§8 «`)
111+
form.textField(`§c» §cSubscribe §f@aitji.\n§a» §fระยะห่างที่เห็นแชท`, `ex: "${chatRang}"`, { defaultValue: String(chatRang) })
112+
form.toggle(`§e»§f แสดงข้อความเมื่อไม่มีใครอยู่ใกล้เคียง`, { defaultValue: messageBool })
113+
form.toggle(`§e»§f "Admin" เห็นข้อความทั้งหมด`, { defaultValue: AdminBool })
114+
form.toggle(`§e»§f การพิมพ์ของ "Admin" จะเห็นทั้งหมด`, { defaultValue: TellAdminBool })
115+
116+
form.show(pl).then(({ canceled, formValues }) => {
117+
if (canceled) return
118+
119+
const [range, msg, admin, tell] = formValues
120+
if (!range || range < 1 || isNaN(Number(range))) return pl.sendMessage(`§7กรุณาใส่ตัวเลขที่§cมากกว่า 0§7 ในระยะห่างที่เห็นแชท`)
121+
122+
let obj = world.scoreboard.getObjective('chatDistance') || world.scoreboard.addObjective('chatDistance', 'Chat Distance')
123+
obj.getParticipants().forEach(p => obj.removeParticipant(p))
124+
obj.setScore('chatRang', Number(range))
125+
obj.setScore('messageToggle', Number(boolTo(msg)))
126+
obj.setScore('AdminToggle', Number(boolTo(admin)))
127+
obj.setScore('TellAdminToggle', Number(boolTo(tell)))
128+
pl.sendMessage(`§fChat Distance is now §aSaved!§r`)
129+
})
130+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { system, world } from "@minecraft/server";
2+
import { createScore } from "./function";
3+
/** _______________________________________________________________ */
4+
system.run(() => {
5+
createScore("chatsettings")
6+
createScore("delay")
7+
createScore("color")
8+
createScore("rankchat")
9+
createScore("chatroom")
10+
createScore("chatroomSetting")
11+
createScore("chatDistance")
12+
})
13+
/** _______________________________________________________________ */

0 commit comments

Comments
 (0)