RuneHive-Game
Loading...
Searching...
No Matches
AppearanceChangeEvent.kt
Go to the documentation of this file.
1package org.jire.runehiveps.event.widget
2
3import com.runehive.content.achievement.AchievementHandler
4import com.runehive.content.achievement.AchievementKey
5import com.runehive.game.world.entity.mob.UpdateFlag
6import com.runehive.game.world.entity.mob.player.Player
7import com.runehive.game.world.entity.mob.player.appearance.Appearance
8import com.runehive.game.world.entity.mob.player.appearance.Gender
9import com.runehive.net.packet.`in`.AppearanceChangePacketListener
10
11/**
12 * @author Jire
13 */
14class AppearanceChangeEvent(
15 val gender: Int,
16 val head: Int,
17 val jaw: Int,
18 val torso: Int,
19 val arms: Int,
20 val hands: Int,
21 val legs: Int,
22 val feet: Int,
23 val hairColor: Int,
24 val torsoColor: Int,
25 val legsColor: Int,
26 val feetColor: Int,
27 val skinColor: Int
28) : WidgetEvent {
29
30 override fun handle(player: Player) {
31 val appearance = Appearance(
32 if (gender == 0) Gender.MALE else Gender.FEMALE,
33 head,
34 if (gender == 0) jaw else -1,
35 torso,
36 arms,
37 hands,
38 legs,
39 feet,
40 hairColor,
41 torsoColor,
42 legsColor,
43 feetColor,
44 skinColor
45 )
46 if (AppearanceChangePacketListener.isValid(player, appearance)) {
47 player.appearance = appearance
48 player.updateFlags.add(UpdateFlag.APPEARANCE)
49 player.interfaceManager.close()
50
51 AchievementHandler.activate(player, AchievementKey.CHANGE_APPEARANCE, 1)
52 }
53 }
54
55}