FTB Utilities Rank Promotions
With this script you can have FTB Utilities roles that change over time.
Is for 1.12 only. Requires FTB Utilities.
events.listen('player.tick', function (event) {
// This check happens every 20 ticks, a.k.a every second
if (event.player.server && event.player.ticksExisted % 20 === 0) {
var rank = event.player.data.ftbutilities.rank
events.post('test_event', {testValue: rank.id})
var newRank = ftbutilities.getRank(rank.getPermission('promotion.next'))
if (newRank) {
var timePlayed = event.player.stats.get('stat.playOneMinute') / 20 // Seconds player has been on server
var timeRequired = newRank.getPermissionValue('promotion.timer').getInt()
if (timeRequired > 0 && timePlayed >= timeRequired && rank.addParent(newRank)) {
if (!events.postCancellable('ftbutilities.rank.promoted.' + newRank.id, {'player': event.player, 'rank': newRank})) {
event.player.tell('You have been promoted to ' + newRank.getPermission('promotion.name') + '!')
}
ftbutilities.saveRanks()
}
}
}
})
// When player gets promoted to 'trusted' rank, give them gold ingot (uncomment the line)
events.listen('ftbutilities.rank.promoted.trusted', function (event) {
// event.data.player.give('minecraft:gold_ingot')
})
3 example roles in ranks.txt:
[player]
power: 1
default_player_rank: true
promotion.name: Player
promotion.next: newcomer
promotion.timer: 5
command.ftbutilities.rtp: false
command.ftbutilities.home: false
[newcomer]
power: 5
promotion.name: Newcomer
promotion.next: regular
promotion.timer: 15
ftbutilities.chat.name_format: <&aNewcomer &r{name}>
command.ftbutilities.rtp: true
[regular]
power: 10
promotion.name: Regular
promotion.next: trusted
promotion.timer: 30
ftbutilities.chat.name_format: <&9Regular &r{name}>
command.ftbutilities.home: true
After 5 seconds of play time, player will be promoted to newcomer.
After 15 seconds (or 10 since previous role) they will be promoted to regular.
After 30 seconds (or 15 since previous role) they will be promoted to trusted, etc.