package net.scapeemulator.game.model.player; import net.scapeemulator.game.msg.impl.ConfigMessage; import net.scapeemulator.game.msg.impl.PrivacySettingsUpdateMessage; import net.scapeemulator.game.msg.impl.ScriptMessage; public final class PlayerSettings { private final Player player; private int attackStyle; private int privateChat; private int publicChat; private int tradeRequests; private boolean autoRetaliating = true; private boolean running = false; /* TODO move to Player as it isn't saved */ private boolean twoButtonMouse = true; private boolean chatFancy = true; private boolean privateChatSplit = false; private boolean acceptingAid = false; public PlayerSettings(Player player) { this.player = player; } public void setRunning(boolean running) { this.running = running; refreshRunning(); } public boolean isRunning() { return running; } public void toggleRunning() { running = !running; refreshRunning(); } public void setAttackStyle(int attackStyle) { this.attackStyle = attackStyle; refreshAttackStyle(); } public int getAttackStyle() { return attackStyle; } public int getPrivateChat() { return privateChat; } public int getPublicChat() { return publicChat; } public int getTradeRequests() { return tradeRequests; } public void setPrivateChat(int privateChat) { setPrivateChat(privateChat, true); } public void setPublicChat(int publicChat) { setPublicChat(publicChat, true); } public void setTradeRequests(int tradeRequests) { setTradeRequests(tradeRequests, true); } public void setPrivateChat(int privateChat, boolean refresh) { this.privateChat = privateChat; if(refresh) refreshPrivacy(); } public void setPublicChat(int publicChat, boolean refresh) { this.publicChat = publicChat; if(refresh) refreshPrivacy(); } public void setTradeRequests(int tradeRequests, boolean refresh) { this.tradeRequests = tradeRequests; if(refresh) refreshPrivacy(); } public void toggleAutoRetaliating() { autoRetaliating = !autoRetaliating; refreshAutoRetaliating(); } public void setAutoRetaliating(boolean autoRetaliating) { this.autoRetaliating = autoRetaliating; refreshAutoRetaliating(); } public boolean isAutoRetaliating() { return autoRetaliating; } public void setTwoButtonMouse(boolean twoButtonMouse) { this.twoButtonMouse = twoButtonMouse; refreshTwoButtonMouse(); } public void toggleTwoButtonMouse() { twoButtonMouse = !twoButtonMouse; refreshTwoButtonMouse(); } public boolean isTwoButtonMouse() { return twoButtonMouse; } public void setChatFancy(boolean chatFancy) { this.chatFancy = chatFancy; refreshChatFancy(); } public void toggleChatFancy() { chatFancy = !chatFancy; refreshChatFancy(); } public boolean isChatFancy() { return chatFancy; } public void setPrivateChatSplit(boolean privateChatSplit) { this.privateChatSplit = privateChatSplit; refreshPrivateChatSplit(); } public void togglePrivateChatSplit() { privateChatSplit = !privateChatSplit; refreshPrivateChatSplit(); } public boolean isPrivateChatSplit() { return privateChatSplit; } public void setAcceptingAid(boolean acceptingAid) { this.acceptingAid = acceptingAid; refreshAcceptingAid(); } public void toggleAcceptingAid() { acceptingAid = !acceptingAid; refreshAcceptingAid(); } public boolean isAcceptingAid() { return acceptingAid; } public Player getPlayer() { return player; } public void refresh() { refreshRunning(); refreshAttackStyle(); refreshAutoRetaliating(); refreshTwoButtonMouse(); refreshChatFancy(); refreshPrivateChatSplit(); refreshAcceptingAid(); refreshPrivacy(); } private void refreshRunning() { player.send(new ConfigMessage(173, running ? 1 : 0)); } private void refreshAttackStyle() { player.send(new ConfigMessage(43, attackStyle)); } private void refreshPrivacy() { player.send(new PrivacySettingsUpdateMessage(publicChat, privateChat, tradeRequests)); } private void refreshAutoRetaliating() { player.send(new ConfigMessage(172, autoRetaliating ? 0 : 1)); } private void refreshTwoButtonMouse() { player.send(new ConfigMessage(170, twoButtonMouse ? 0 : 1)); } private void refreshChatFancy() { player.send(new ConfigMessage(171, chatFancy ? 0 : 1)); } private void refreshPrivateChatSplit() { player.send(new ConfigMessage(287, privateChatSplit ? 1 : 0)); if (privateChatSplit) { player.send(new ScriptMessage(83, "s")); } } private void refreshAcceptingAid() { player.send(new ConfigMessage(427, acceptingAid ? 1 : 0)); } }