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.

PixelCrafter1000

User / Kunde

  • "PixelCrafter1000" started this thread

Posts: 79

  • Send private message

1

Friday, April 25th 2014, 9:00am

Scheduler beim Reload weiterlaufen lassen...

Hey Leute hab jz das Problem mit den schildern gelöst, jz hab ich was anderes, und zwar wenn ich das schild erstelle (s.code) funktioniert alles 100%, doch wenn ich reloade oder das plugin reloade stoppen die Scheduler und das schild ändert sich deshalb dann auch nichtmehr...
jz meine Frage, wenn ich den Code so habe:

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
47
48
49
50
51
52
53
54
55
...

int time = 30;

...

@EventHandler
public void onSign(final SignChangeEvent e){
		
Block b = e.getBlock();
				
if(b.getState() instanceof Sign){
final Sign s = (Sign) b.getState();					
Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
@Override
public void run() {
if(time != 0) {
time--;
}
if(time ==29){
s.setLine(0, "§1[Markt Info]");
s.setLine(1, "Pinke NPC's");
s.setLine(2, "verkaufen:");
s.setLine(3, "Waffen & rüssi");
s.update();
}
if(time ==28){
s.setLine(0, "§1[Markt Info]");
s.setLine(1, "Grüne NPC's");
s.setLine(2, "verkaufen:");
s.setLine(3, "Nahrung");
s.update();
}
if(time ==27){     
s.setLine(0, "§1[Markt Info]");
s.setLine(1, "Weiße NPC's");
s.setLine(2, "verkaufen:");
s.setLine(3, "Tränke & Bücher");
s.update();
}
if(time ==26){     
s.setLine(0, "§1[Markt Info]");
s.setLine(1, "Braune NPC's");
s.setLine(2, "tauschen mit");
s.setLine(3, "dir Geld aus");
s.update();
time = 30;
						
}
}, 60, 60);
					
}
		
		
}

kann ich dann einfach die Location vom Schild in ner cfg speichern, im onDisable() teil abfragen welchen wert "time" hat und ab diesem wert dann im onEnable() teil fortfahren?
wenn ja könnte mir jemand sagen, wie ich in einer anderen Klasse den aktuellen Wert von "time" und den eigentlichen wert von "time" abrufe?
------------------------------------------------------------------------------------

Ich konnte euch helfen ? ich würde mich sehr über eine kleine Spende freuen ;)

-----------------------------------------------------------------------------------

0liCom

User / Kunde

  • "0liCom" is male

Posts: 61

Location: Bayern

Occupation: Schüler

  • Send private message

2

Friday, April 25th 2014, 9:32am

Entweder du machst es per Variablen und config, wie du bereits vorgedacht hast oder du verwendest Java-Timer, die Reload-unabhängig sind, d.h. sie werden nicht vom Reload beeinflusst.

Wenn du einen Code dazu willst:

Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static boolean start = false;
int time = 30;
final Timer timer1 = new Timer();

TimerTask task1 = new TimerTask() {
    public void run() {
        //Hier kannst du eventuell noch eine Variable einbauen, ob der Timer zurzeit etwas durchführen soll oder nicht. Hier ein Beispiel:
        if (start == true) {
            time--;
            
            //Dein Code
            
        }
    }
}; //Hier ist das ; wichtig


Und um den Timer zu aktivieren:

Java source code

1
2
timer1.schedule(task1, 0, 1000); //Hier auf eine Sekunde eingestellt
start = true;


Ich hoffe du kannst damit was anfangen, ansonsten nochmal nachfragen oder googlen.

Bei Fehlern wie immer bitte darauf hinweisen.

MfG, 0liCom
:cookie:

Batimonster

User / Kunde

  • "Batimonster" is male

Posts: 435

Location: 0.0.0.0

Occupation: Schüler

Thanks: 1

  • Send private message

3

Friday, April 25th 2014, 9:53am

Du kannst im onDisable()-Teil dein jetziges Schild in einer yml abspeichern und im onEnable()-Teil wieder aufrufen. Dann startest du den Scheduler aber auch im onEnable(). Wie du Variablen aus anderen Klassen beWann hast du das Kits pluginnutzt? Du machst dir einen Komstruktor in der anderen Klasse:

Java source code

1
2
public DeineKlasse() {
}

Und dann benutzt du den in deiner Main:

Java source code

1
2
DeineKlasse klasse = new DeineKlasse();
klasse. //Hier kannste dann auswählen

PixelCrafter1000

User / Kunde

  • "PixelCrafter1000" started this thread

Posts: 79

  • Send private message

4

Friday, April 25th 2014, 9:56am

Entweder du machst es per Variablen und config, wie du bereits vorgedacht hast oder du verwendest Java-Timer, die Reload-unabhängig sind, d.h. sie werden nicht vom Reload beeinflusst.

Wenn du einen Code dazu willst:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static boolean start = false;
int time = 30;
final Timer timer1 = new Timer();

TimerTask task1 = new TimerTask() {
    public void run() {
        //Hier kannst du eventuell noch eine Variable einbauen, ob der Timer zurzeit etwas durchführen soll oder nicht. Hier ein Beispiel:
        if (start == true) {
            time--;
            
            //Dein Code
            
        }
    }
}; //Hier ist das ; wichtig



Und um den Timer zu aktivieren:

Source code

1
2
timer1.schedule(task1, 0, 1000); //Hier auf eine Sekunde eingestellt
start = true;



okay ist das denn dann auch der repeating Task?
------------------------------------------------------------------------------------

Ich konnte euch helfen ? ich würde mich sehr über eine kleine Spende freuen ;)

-----------------------------------------------------------------------------------

0liCom

User / Kunde

  • "0liCom" is male

Posts: 61

Location: Bayern

Occupation: Schüler

  • Send private message

5

Friday, April 25th 2014, 12:12pm

Ja, das ist ein repeating Task, der sich jede Sekunde wiederholt.
:cookie:

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