RuneHive-Game
Loading...
Searching...
No Matches
SendSkill.java
Go to the documentation of this file.
1package com.runehive.net.packet.out;
2
3import com.runehive.net.codec.ByteOrder;
4import com.runehive.game.world.entity.mob.player.Player;
5import com.runehive.game.world.entity.skill.Skill;
6import com.runehive.net.packet.OutgoingPacket;
7
8/**
9 * Sends a skill to a client.
10 *
11 * @author Michael | Chex
12 */
13public class SendSkill extends OutgoingPacket {
14
15 private final int id;
16 private final int level;
17 private final int experience;
18
19 public SendSkill(int id, int level, int experience) {
20 super(134, 6);
21 this.id = id;
22 this.level = level;
23 this.experience = experience;
24 }
25
26 public SendSkill(Skill skill) {
27 this(skill.getSkill(), skill.getLevel(), skill.getRoundedExperience());
28 }
29
30 @Override
31 public boolean encode(Player player) {
32 final int color = player.settings.prestigeColors ? player.prestige.getPrestigeColor(id) : 0xFFFF00;
33 player.send(new SendColor(Skill.INTERFACE_DATA[id][0], color));
34 player.send(new SendColor(Skill.INTERFACE_DATA[id][1], color));
35 builder.writeByte(id)
36 .writeInt(experience, ByteOrder.ME)
37 .writeByte(level);
38 return true;
39 }
40}
int getPrestigeColor(int skill)
Gets the current prestige color of the player.
This class represents a character controlled by a player.
Definition Player.java:125
Represents a trainable and usable skill.
Definition Skill.java:18
int getLevel()
Gets the current skill level.
Definition Skill.java:205
static final int[][] INTERFACE_DATA
Skill tab string data.
Definition Skill.java:140
int getRoundedExperience()
Gets the floor experience.
Definition Skill.java:232
OutgoingPacket(int opcode, int capacity)
The OutgoingPacket that sends a color to a string in the client.
SendSkill(int id, int level, int experience)
Represents the order in which bytes are written.
Definition ByteOrder.java:8
ME
Represents Middle-endian.