• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Timer einbauen

Mrcookie008

Braumeister
Registriert
15 Dezember 2011
Beiträge
380
Diamanten
0
Minecraft
xCookieZz oder Mrcookie008 (Beides Premium)
Eclipse Timer Code

Heyho Leute :3
Ich wollte mal fragen wie man einen Timer in Eclipse einbaut, der wenn man einen Befehl eingegeben hat abläuft und erst dann den Befehl wieder eingeben kann (Sowie bei Essentials /kit)

Ich möchte das dann soähnlich wie bei Essentials machen, bloss eben dass man die Zeit nicht in der Config einstellen kann ^^

Wer mir helfen kann bzw. den Code hat bitte antworten :)

LG.
 

Mrcookie008

Braumeister
Registriert
15 Dezember 2011
Beiträge
380
Diamanten
0
Minecraft
xCookieZz oder Mrcookie008 (Beides Premium)
Code:
	if (cmd.getName().equalsIgnoreCase("BefehlXY")) {
		if ((p.hasPermission("PluginXY.permission")) &&
			(args.length == 0)) {
	          p.getInventory().setHelmet(new ItemStack(310));
	          p.getInventory().setChestplate(new ItemStack(311));
	          p.getInventory().setLeggings(new ItemStack(312));
	          p.getInventory().setBoots(new ItemStack(313));
	          p.getInventory().addItem(new ItemStack (276, 1));
		}
		
	}

Dieser Befehl soll ja jetzt in Ticks ausgeführt werden, bloss wo füge ich dass jetzt ein dass man den befehl bzw. die Items nur alle 24 stunden bekommt (via. Ticks?) :/
 

Crafter213

Braumeister
Registriert
9 August 2012
Beiträge
353
Diamanten
0
Speicher doch die Systemzeit in Verbindung mit dem Spielernamen.
Am Anfang vom Command fragst du dann, ob
a. kein Eintrag existiert -> Command ausführen und Eintrag erstellen
b. sich die Systemzeit des alten Eintrages um mehr ls 24 Stunden unterscheidet -> Command ausführen und den Eintrag aktualisieren

Wenn sich die eingespeicherte Systemzeit nicht um mehr als 24 Stunden von der aktuellen Systemzeit unterscheidet,
bekommt der Spieler eine Meldung, dass er noch warten muss.

Ich hoffe mal, das klappt und ist nicht allzu ineffizient...
 

Mrcookie008

Braumeister
Registriert
15 Dezember 2011
Beiträge
380
Diamanten
0
Minecraft
xCookieZz oder Mrcookie008 (Beides Premium)
Hallo,
ich würde gerne in meinen Code einen Timer einbauen (Ich glaube das nennt sich Scheduler^^), damit man diesen Command in z.B erst 15.000 ticks wieder ausführen kann, weiss jemand wie das funktioniert?

Beispiel Befehl:

Code:
	    if (cmd.getName().equalsIgnoreCase("test")) {
	          Player p = (Player)sender;
	         {
	        }
	          if (args.length == 0) {
	            p.sendMessage("Das ist ein Text");
	          }
	        }
LG.
 

rBxGame

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
16 Februar 2012
Beiträge
1.074
Diamanten
0
Ist ja schön und gut nen Countdown einzubauen.. aber ich möchte dass man den Command erst nach z.B 20 Ticks wieder verwenden kann.. ich glaube ich hab da nen Knoten im Hirn :/

Also willst du im Grunde eine Verzögerung für einen
Befehl.
Ich nutze /blub, und dann müssen X Sekunden vergehen,
bevor ich wieder /blub nutzen darf?

MFG
rBx
 

Mrcookie008

Braumeister
Registriert
15 Dezember 2011
Beiträge
380
Diamanten
0
Minecraft
xCookieZz oder Mrcookie008 (Beides Premium)

Benni1000

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
4 Mai 2012
Beiträge
1.396
Diamanten
0
Du musst nur logisch denken um das problem zu lösen...
Erstelle eine arrayList.
Wenn der befehl ausgeführt wird überprüfe ob der Spielername in der arraylist steht.
Wenn ja dann sag ihm das er noch warten muss, wenn nicht führe den Befehl aus und schreibe ihn auf die Liste und
starte einen delayed task (geht mit dem scheduler) der den namen nach ablauf der zeit von der Liste entfernt.
 

MolaynoxX

Minecrafter
Registriert
22 März 2012
Beiträge
8
Diamanten
0
Wozu dafür überhaupt einen Scheduler benutzen?
Wie wärs denn einfach sobald ein Spieler das Command ausführt System.currentTimeMillis() abzuspeichern und bei erneutem Aufruf dann per Differenz zwischen System.currentTimeMillis() und dem vorher abgespeicherten Wert zu prüfen ob X Sekunden vergangen sind?
So würd ich das jedenfalls machen ^^.

Edit: Uuups da hätt ich wohl vorher mal den Link vom vorherigen Post lesen sollen, naja was solls. :D
 
Oben