[Gelöst] Sign.setLine geht nicht...

Um Übersicht zu schaffen, findet man hier bereits gelöste Fragen und Probleme.

[Gelöst] Sign.setLine geht nicht...

Beitragvon Jofkos » Fr 7. Feb 2014, 21:46

In einer Log ausgabe gab dies immer true zurück:
Code: Alles auswählen
  1. (sign.getState() instanceof Sign)

aber trotzdem functioniert
Code: Alles auswählen
  1. ((Sign)block.getState()).setLine(0, text.substring(0, 15))

nicht.
Nach dem ich den obigen Code ausgeführt habe habe ich das Schild auch geupdatet:
Code: Alles auswählen
  1. ((Sign)block.getState()).update()
Zuletzt geändert von Jofkos am Mo 10. Feb 2014, 12:19, insgesamt 2-mal geändert.
Jofkos

...........

..Bild
Benutzeravatar
Jofkos
 
Beiträge: 1537
Registriert: So 16. Jun 2013, 22:45

Re: Sign.setLine geht nicht Oo

Beitragvon PostCrafter » Sa 8. Feb 2014, 10:52

Bei den Problemen, die du hast, würde ich mal eine andere Bukkitversion ausprobieren, um zu sehen ob es vielleicht daran lag.

Übrigens würde ich Sign in eine lokale Variable setzen, die getState()-Abfrage ist eine relativ heftige, da sie, anders als ihr Name vermuten lässt, kein simpler Getter ist.
TeamSpeak-Server zur freien Nutzung: postcrafter.de
Benutzeravatar
PostCrafter
Administrator
 
Beiträge: 1443
Registriert: Do 6. Jun 2013, 19:16
Wohnort: Ebersberg

Re: Sign.setLine geht nicht Oo

Beitragvon Jofkos » So 9. Feb 2014, 13:15

PostCrafter hat geschrieben:[...] Übrigens würde ich Sign in eine lokale Variable setzen [...]

Was meinst du mit lokaler Variable?
Ich schreibe einen Text über eine ganze Schildwand. Die Schilder werden mit
Code: Alles auswählen
  1. block.getRelative(BlockFace)
in meheren While schleifen berechnet.
Code: Alles auswählen
  1. block = block.getRelative(BlockFace)

der block wird immer neu gesetzt, und ich hole mir dann das Schild über
Code: Alles auswählen
  1. ((Sign)block.getState())
geholt und dann mit setLine beschrieben
Jofkos

...........

..Bild
Benutzeravatar
Jofkos
 
Beiträge: 1537
Registriert: So 16. Jun 2013, 22:45

Re: Sign.setLine geht nicht...

Beitragvon Chaineagle » So 9. Feb 2014, 20:15

Code: Alles auswählen
  1. Sich sign = (Sich) block.getState();

Die Veränderungen werden vor dem Update nur in der Instanz von CraftSign gespeichert. Es wird jedoch bei jedem getState() eine neue erstellt. Daher geht das nicht
Benutzeravatar
Chaineagle
 
Beiträge: 621
Registriert: Mi 19. Jun 2013, 12:37
Wohnort: Kassel

Re: Sign.setLine geht nicht...

Beitragvon Jofkos » Mo 10. Feb 2014, 10:47

Vielen dank @BastiFreak2000!
Werde ich gleich mal testen

Edit: Hat funktioniert! Danke nochmals!
Jofkos

...........

..Bild
Benutzeravatar
Jofkos
 
Beiträge: 1537
Registriert: So 16. Jun 2013, 22:45


Zurück zu Bereits gelöst

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 5 Gäste