Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PrismarineJS
GitHub Repository: PrismarineJS/mineflayer
Path: blob/master/test/externalTests/experience.js
2155 views
1
const assert = require('assert')
2
const { once } = require('../../lib/promise_utils')
3
4
module.exports = () => async (bot) => {
5
await bot.test.becomeSurvival()
6
await bot.test.wait(1000)
7
8
// Initial state
9
const initialState = {
10
level: bot.experience.level,
11
points: bot.experience.points,
12
progress: bot.experience.progress
13
}
14
assert(initialState.level >= 0, 'Initial experience level should be non-negative')
15
assert(initialState.points >= 0, 'Initial experience points should be non-negative')
16
assert(initialState.progress >= 0 && initialState.progress <= 1, 'Initial experience progress should be between 0 and 1')
17
18
// Test experience points
19
const xpCommand = bot.registry.isOlderThan('1.13')
20
? `/xp 10 ${bot.username}`
21
: `/xp add ${bot.username} 10 points`
22
23
await bot.chat(xpCommand)
24
await once(bot, 'experience')
25
26
// Verify after points
27
assert(bot.experience.points >= 10, 'Experience points should be at least 10 after adding points')
28
assert(bot.experience.level >= initialState.level, 'Experience level should not decrease after adding points')
29
assert(bot.experience.progress >= 0 && bot.experience.progress <= 1, 'Experience progress should be between 0 and 1 after adding points')
30
31
// Test experience levels
32
const levelCommand = bot.registry.isOlderThan('1.13')
33
? `/xp 100L ${bot.username}`
34
: `/xp add ${bot.username} 100 levels`
35
36
await bot.chat(levelCommand)
37
await once(bot, 'experience')
38
39
// Verify after levels
40
assert(bot.experience.level >= 100, 'Experience level should be at least 100 after adding levels')
41
assert(bot.experience.points > 0, 'Experience points should be positive after adding levels')
42
assert(bot.experience.progress >= 0 && bot.experience.progress <= 1, 'Experience progress should be between 0 and 1 after adding levels')
43
}
44
45