You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

JeterLP

User / Kunde

  • "JeterLP" is male

Posts: 258

Occupation: Mechatroniker für Kältetechnik

Thanks: 1

  • Send private message

21

Sunday, October 20th 2013, 2:28pm

Machst du das Plugin open-source? Ich wüsste gerne wie das funktioniert.

BlazeMania

User / Kunde

  • "BlazeMania" is male
  • "BlazeMania" started this thread

Posts: 1,299

Location: Berlin

Occupation: Schüler (Gymnasium)

  • Send private message

22

Sunday, October 20th 2013, 4:05pm

@JeterLP:
Jaein, da ich noch unsicher bin, ob ich mein kompliziertes PacketHandler-System

JeterLP

User / Kunde

  • "JeterLP" is male

Posts: 258

Occupation: Mechatroniker für Kältetechnik

Thanks: 1

  • Send private message

23

Sunday, October 20th 2013, 4:17pm

Wo ist der Rest? xD

BlazeMania

User / Kunde

  • "BlazeMania" is male
  • "BlazeMania" started this thread

Posts: 1,299

Location: Berlin

Occupation: Schüler (Gymnasium)

  • Send private message

24

Sunday, October 20th 2013, 4:22pm

@JeterLP:
Ups, zu schnell :D
Also: Jaein, da ich noch unsicher bin, ob ich mein kompliziertes PacketHandler-System veröffentlichen will ...

JeterLP

User / Kunde

  • "JeterLP" is male

Posts: 258

Occupation: Mechatroniker für Kältetechnik

Thanks: 1

  • Send private message

25

Sunday, October 20th 2013, 4:23pm

Okay :) Schreib mir wenn dus veröffentlichst ;)

BlazeMania

User / Kunde

  • "BlazeMania" is male
  • "BlazeMania" started this thread

Posts: 1,299

Location: Berlin

Occupation: Schüler (Gymnasium)

  • Send private message

26

Sunday, October 20th 2013, 4:56pm

Soo VERSION 1.3 wurde auf Bukkit veröffentlicht :)

Franzi564

User / Kunde

Posts: 763

Thanks: 15

  • Send private message

27

Sunday, October 20th 2013, 6:05pm

@JeterLP:
Ups, zu schnell :D
Also: Jaein, da ich noch unsicher bin, ob ich mein kompliziertes PacketHandler-System veröffentlichen will ...

Dein kompliziertes?
Das ist eine if mit den Versions und für jede Version eine extra Klasse.
Was ist daran so kompliziert?

Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public void sendPacketRequest(Player player, String text, boolean cancel)
  {
    if (this.version.contains("1.4.5"))
    {
      v1_4_5.sendPacket(player, text, cancel);
    }
    else if (this.version.contains("1.4.6"))
    {
      v1_4_6.sendPacket(player, text, cancel);
    }
    else if (this.version.contains("1.4.7"))
    {
      v1_4_R1.sendPacket(player, text, cancel);
    }
    else if (this.version.contains("1.5.1"))
    {
      v1_5_R2.sendPacket(player, text, cancel);
    }
    else if (this.version.contains("1.5.2"))
    {
      v1_5_R3.sendPacket(player, text, cancel);
    }
    else if (this.version.contains("1.6.1"))
    {
      v1_6_R1.sendPacket(player, text, cancel);
    }
    else if (this.version.contains("1.6.2"))
    {
      v1_6_R2.sendPacket(player, text, cancel);
    }
    else if (this.version.contains("1.6.4"))
    {
      v1_6_R3.sendPacket(player, text, cancel);
    }
    else if (this.version.contains("1.7.1"))
    {
      v1_7_R1.sendPacket(player, text, cancel);
    }
  }

Vorallem, weil man die Versionsunterscheidung auch mit switch machen könnte (mit Java 7)

Und wer wirklich deinen Code will, decompilt es doch sowieso.
Es hat also wirklich null Vorteile, wenn du den Code nicht veröffentlichst.

P.S. Wieso musstest du das hier so kompliziert machen? (Sogar noch ein Rechtschreibfehler drin, wodurch 1.4.6 nicht unterstützt wird)

Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
private void checkVersion()
  {
    String version = Bukkit.getVersion();

    if (version.contains("MC: 1.4.5"))
    {
      this.bukkitVersion = "1.4.5";
    }
    else if (version.contains("MC: 1.4.6"))
    {
      this.bukkitVersion = "1.4.76";
    }
    else if (version.contains("MC: 1.4.7"))
    {
      this.bukkitVersion = "1.4.7";
    }
    else if (version.contains("MC: 1.5.1"))
    {
      this.bukkitVersion = "1.5.1";
    }
    else if (version.contains("MC: 1.5.2"))
    {
      this.bukkitVersion = "1.5.2";
    }
    else if (version.contains("MC: 1.6.1"))
    {
      this.bukkitVersion = "1.6.1";
    }
    else if (version.contains("MC: 1.6.2"))
    {
      this.bukkitVersion = "1.6.2";
    }
    else if (version.contains("MC: 1.6.4"))
    {
      this.bukkitVersion = "1.6.4";
    }
    else if (version.contains("MC: 1.7.1"))
    {
      this.bukkitVersion = "1.7.1";
    }
    else
    {
      getLogger().severe("Unknown or unsupported Bukkit Version! Is the Plugin up to date?");
      Bukkit.getPluginManager().disablePlugin(this);
    }
  }

Geht doch viel viel einfacher:

Java source code

1
2
3
4
5
6
7
private void checkVersion() {
	String version = Bukkit.getVersion();
	version = version.replace("(", "");
	version = version.replace(")", "");
	version = version.split(" ")[2];
	this.bukkitVersion = version;
}


P.S. 2: In der textValues() hättest du für die ganzen Farben auch mit ChatColor.translateAlternateColorCodes(line, '&'); in § umwandeln können.

This post has been edited 2 times, last edit by "Franzi564" (Oct 20th 2013, 6:13pm)


BlazeMania

User / Kunde

  • "BlazeMania" is male
  • "BlazeMania" started this thread

Posts: 1,299

Location: Berlin

Occupation: Schüler (Gymnasium)

  • Send private message

28

Sunday, October 20th 2013, 6:31pm

@Franzi564
Uuupps.. toll, danke für den Hinweis auf den Tippfehler xD

Version 1.3.2 ist da! Es wird nur noch auf die Freischaltung gewartet...
Mehr siehe hier: http://dev.bukkit.org/bukkit-plugins/fancytab/

MfG David

JeterLP

User / Kunde

  • "JeterLP" is male

Posts: 258

Occupation: Mechatroniker für Kältetechnik

Thanks: 1

  • Send private message

29

Sunday, October 20th 2013, 6:58pm

Wenn dus nicht open source gemacht hättest, hätte ich es eh decompilet, man muss sich ja auch weiterbilden :D Da der decompiler (jd-gui) aber oft Fehler macht, ist es doch die bessere Lösung den source zu nehmen. Beispiel: wenn man ein Plugin welches SQL verwendet decompilet, schneidet der decompile
r bei allen queries hinten ");" ab. Dadurch funktionieren dje queries nicht mehr.

EDIT:

Weiteres Beispiel: hat man eine List<String> test wird daraus nach dem decompile nur noch eine List test. Dadurch funktionieren die meisten methoden nicht mehr :D

This post has been edited 1 times, last edit by "JeterLP" (Oct 20th 2013, 7:04pm)


BtoBastian

Moderator

  • "BtoBastian" is male

Posts: 3,612

Occupation: Softwareentwickler

  • Send private message

30

Sunday, October 20th 2013, 7:07pm

Also mit Reflection sollte das mit den Packets wesentlich eleganter gehen...
Standard Standart eines Flamingos ist einbeinig.

BlazeMania

User / Kunde

  • "BlazeMania" is male
  • "BlazeMania" started this thread

Posts: 1,299

Location: Berlin

Occupation: Schüler (Gymnasium)

  • Send private message

31

Sunday, October 20th 2013, 7:22pm

@BtoBastian:
Ich weiß dass man Reflections nutzen kann, ich habe sie für meine ParticleLib benutzt, aber will es bei FancyTab noch so belassen ;)

BtoBastian

Moderator

  • "BtoBastian" is male

Posts: 3,612

Occupation: Softwareentwickler

  • Send private message

32

Sunday, October 20th 2013, 7:28pm

Die Variante die du zurzeit benutzt ist jedenfalls alles andere als sauber.
Standard Standart eines Flamingos ist einbeinig.

mendalight

User / Kunde

  • "mendalight" is male

Posts: 240

  • Send private message

33

Sunday, October 20th 2013, 7:30pm

ist in der Version 1.3 der bug mit dem /tabreload schon behoben oder kommt das in der 1.4?

//Edit: Hat sich erledigt :D
╔═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗

Wenn ich dir geholfen habe kannst du GERNE auf den Bedank Link klicken

╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝

BlazeMania

User / Kunde

  • "BlazeMania" is male
  • "BlazeMania" started this thread

Posts: 1,299

Location: Berlin

Occupation: Schüler (Gymnasium)

  • Send private message

34

Sunday, October 20th 2013, 7:36pm

@BtoBastian:
Ich weiß, aber ich werde morgen 1.4 mit meiner ReflectionUtil updaten ;)

Hier für interessierten meine ReflectionUtil.java:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.lang.reflect.Field;

public class ReflectionUtil 
{
    public static void setValue(Object instance, String fieldName, Object value) throws Exception 
    {
        Field field = instance.getClass().getDeclaredField(fieldName);
        field.setAccessible(true);
        field.set(instance, value);
    }
    
    public static Object getValue(Object instance, String fieldName) throws Exception 
    {
        Field field = instance.getClass().getDeclaredField(fieldName);
        field.setAccessible(true);
        return field.get(instance);
    }
 
}

BtoBastian

Moderator

  • "BtoBastian" is male

Posts: 3,612

Occupation: Softwareentwickler

  • Send private message

35

Sunday, October 20th 2013, 7:55pm

ReflectionUtil?!?
Jetzt mal ernsthaft, das ist nichteinmal ein Bruchteil von dem, was man mit Reflection machen kann.
Soweit ich das erkennen kann ist das was du damit vorhast nix weiter als auf private Attribute zuzugreifen.
Das ist nicht gerade der Sinn von Reflection und geht auch nur, da Bukkit keinen SecurityManager hat, welcher das im Normalfall verhindern würde.
Und in dem Fall "Versionsunabhängiges Arbeiten mit Packets" auch nicht zu brauchen.
Standard Standart eines Flamingos ist einbeinig.

BlazeMania

User / Kunde

  • "BlazeMania" is male
  • "BlazeMania" started this thread

Posts: 1,299

Location: Berlin

Occupation: Schüler (Gymnasium)

  • Send private message

36

Sunday, October 20th 2013, 8:02pm

@BtoBastian:
Das ist nur das was ich für Packets normalerweise brauche ;)

JeterLP

User / Kunde

  • "JeterLP" is male

Posts: 258

Occupation: Mechatroniker für Kältetechnik

Thanks: 1

  • Send private message

37

Sunday, October 20th 2013, 8:50pm

Hey, hab mir das gestern mit der Reflection schon mal durchgelesen, doch so ganz hab ich noch nicht verstanden, was das bringen soll xD Bis jetzt hab ich Reflection (unbewusst) immer nur dann benutzt wenn ich den MySQL Treiber abgefragt habe mit Class.forName :D

über eine etwas leichter verständliche Erklärung als das was Wikipedia hergibt, würde mich freuen :)

BastiFreak2000

User / Kunde

Posts: 233

Location: Kassel

  • Send private message

38

Sunday, October 20th 2013, 10:20pm

Das mit der Bukkitversion geht aber nicht mehr so gut. Gibt es eine Möglichkeit, die genaue Bukkitversion herauszubekommen, ohne auszuprobieren?

BtoBastian

Moderator

  • "BtoBastian" is male

Posts: 3,612

Occupation: Softwareentwickler

  • Send private message

39

Sunday, October 20th 2013, 10:42pm

Wie schon gesagt: Reflection
Standard Standart eines Flamingos ist einbeinig.

BlazeMania

User / Kunde

  • "BlazeMania" is male
  • "BlazeMania" started this thread

Posts: 1,299

Location: Berlin

Occupation: Schüler (Gymnasium)

  • Send private message

40

Monday, October 21st 2013, 8:33am

@BtoBastian,
Das mit den mehreren if-Abfragen habe ich gemacht, weil ich FancyTab nur für MC Versionen ab 1.4.5 unterstütze..

FancyTab Version 1.3.2 zum Download bereit!
http://dev.bukkit.org/bukkit-plugins/fancytab/files/6-fancy-tab_v1-3-2/

MfG David

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net