1. #1

    Registriert seit
    06.11.2011
    Beiträge
    418
    Thanked 686 Times in 246 Posts

    Standard [Java] Toolbar

    Kann sowohl Server seitig als auch Client seitig genutzt werden.

    ToolbarButton.java
    Code:
    /**
     *
     * @author Flav
     */
    public class ToolbarButton {
        private String label;
        private String action;
        private String icon;
        private boolean left;
    
        public ToolbarButton(String label, String action, String icon, boolean left) {
            this.label = label;
            this.action = action;
            this.icon = icon;
            this.left = left;
        }
    
        public String getLabel() {
            return label;
        }
    
        public String getAction() {
            return action;
        }
    
        public String getIcon() {
            return icon;
        }
    
        public boolean isLeft() {
            return left;
        }
    }
    Toolbar.java
    Code:
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     *
     * @author Flav
     */
    public class Toolbar {
        private static List<ToolbarButton> buttons;
    
        static {
            buttons = new ArrayList<ToolbarButton>();
            addButton(new ToolbarButton(" Sex ", "", "", true));
        }
    
        public static void addButton(ToolbarButton button) {
            buttons.add(button);
        }
    
        public static void removeButton(ToolbarButton button) {
            buttons.remove(button);
        }
    
        public static String refresh(String channel) {
            return refresh(channel, false);
        }
    
        public static String refresh(String channel, boolean hide) {
            PacketBuilder buffer = new PacketBuilder();
    
            buffer.writeByte(0x00);
            buffer.writeByte(0x3F);
            buffer.writeByte(0x00);
            buffer.writeString(channel, true);
    
            if (!hide) {
                for (ToolbarButton button : buttons) {
                    buffer.writeByte(0x0B);
                    buffer.writeByte(0x00);
                    buffer.writeString(button.getLabel(), true);
                    buffer.writeByte(0x00);
                    buffer.writeString(button.getIcon(), true);
                    buffer.writeByte(button.isLeft() ? 0x01 : 0x00);
                    buffer.writeByte(0x00);
                    buffer.writeString(button.getAction(), true);
                }
            }
    
            buffer.writeByte(0x0C);
            buffer.writeByte(0x0C);
    
            return buffer.toString();
        }
    
        public static String setColor(String channel) {
            PacketBuilder buffer = new PacketBuilder();
    
            buffer.writeByte(0x00);
            buffer.writeByte(0x78);
            buffer.writeByte(0x00);
            buffer.writeString(channel, true);
    
            // bar
            buffer.write(new int[] { 0x63, 0x9F, 0xFF }); // gradient top
            buffer.write(new int[] { 0x4E, 0x69, 0xFF }); // gradient bottom
            buffer.write(new int[] { 0x26, 0x3E, 0xFF }); // background
    
            // buttons
            buffer.write(new int[] { 0x63, 0x9F, 0xFF }); // gradient top
            buffer.write(new int[] { 0x4E, 0x69, 0xFF }); // gradient bottom
            buffer.write(new int[] { 0x32, 0x4B, 0xFF }); // background
    
            buffer.write(new int[] { 0x63, 0x9F, 0xFF }); // gradient top
            buffer.write(new int[] { 0x4E, 0x69, 0xFF }); // gradient bottom
            buffer.write(new int[] { 0x32, 0x4B, 0xFF }); // background
    
            return buffer.toString();
        }
    }
    Die Modes (hier 0x3F und 0x78) müssen bei einem Protokol-Update öfters mal angepasst werden, alternativ kann man das Protokol aber auch faken.

  2. #2

    Registriert seit
    31.01.2011
    Beiträge
    52
    Thanked 106 Times in 41 Posts

    Standard [Java] Toolbar

    Warum bei den Toolbar buttons die label attribute nur getten lassen?
    wenn man sie setten kann, könnte man viel leichter einen button verändern ohne einen zu löschen & neuen hinzuzufügen.
    so bleibt auch die position von dem button in der toolbar erhalten..
    man müsste halt die ganze toolbar refresehen wenn was gesettet wird, aber das ist ja kein problem..

    oder?

  3. #3

    Registriert seit
    12.12.2011
    Beiträge
    39
    Thanked 24 Times in 16 Posts

    Standard [Java] Toolbar

    Flav gibt's zwar nicht mehr, doch ich kann dir sagen, dass du das natürlich gerne hinzufügen kannst, doch für die bisherigen Projekte hat das so gereicht.
    Es ist ja OpenSource, damit man es verändern kann.

  4. #4

    Registriert seit
    31.01.2011
    Beiträge
    52
    Thanked 106 Times in 41 Posts

    Standard [Java] Toolbar

    Mich hatte es nur etwas im k-script client gestört da man so mit javascript die buttons immer entferenn & neu hinzufügen muss :p
    dachte es hätte i-einen grund.

    naja danke.

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 02.12.2013, 23:41
  2. Fifty! Toolbar
    Von infected im Forum Sonstige Knuddels Bots/Software
    Antworten: 2
    Letzter Beitrag: 14.10.2013, 19:04
  3. Antworten: 7
    Letzter Beitrag: 29.05.2012, 02:52
  4. [Java] [Knuddels] Toolbar
    Von Mentos im Forum Sourcecode
    Antworten: 0
    Letzter Beitrag: 02.05.2012, 19:26
  5. [Java] Toolbar
    Von Flav im Forum Sourcecode
    Antworten: 0
    Letzter Beitrag: 02.02.2012, 16:23
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.