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

jonel

User / Kunde

  • "jonel" started this thread

Posts: 69

  • Send private message

1

Monday, July 20th 2015, 2:10pm

MInecraft Zeit (Tag/Nacht) um diese zu verlängern oder zu verkürzen.

Hallo Community,

ich schreibe an einen Plugin, wo ich die Zeit einer Welt von den 24 Minuten Tag/Nacht-Rhythmus verlängern oder verkürzen kann, allerdings kappt irgendwas nicht in meiner Berechnung.
Achso und ein anderes Problem ist das Minecraft die Zeit nicht als Kommawerte nimmt sondern nur ein (Long).
Hier mein Ansatz, allerdings komme ich dann nicht auf die angegebene Zeit.

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
47
48
49
package de.jonas18175.spigot.servercore.special;

import org.bukkit.Bukkit;
import org.bukkit.World;

import java.util.List;

/**
 * Created by jtschoch on 22.06.15.
 */
public class DayNightCycle implements Runnable {
    private double minutes = 2.0; // Die Zeit die der Rhythmus benötigen soll 
    private double ticks = 0;
    private double delay = 0;
    private List<World> worlds;

    public DayNightCycle() {
        worlds = Bukkit.getServer().getWorlds();

        double minute = (minutes / 24.0); // minutes durch die 24 Minuten die Minecraft sonst hat.
        //double seconds = (minutes / 60.0); // wird nicht benötigt
        ticks = (minute * 20.0); // die minuten als Ticks wandlen

        delay = (minute * (100.0 / ticks)); // das delay ausrechnen für die addition der Zeit
        System.out.print(delay);
    }

    @Override
    public void run() {
        while(true) {
            for (int i=0; i<worlds.size(); i++) {
                World world = Bukkit.getServer().getWorld(worlds.get(i).getName());
                long time = (long) (world.getTime() + 1); // Add ein Tick??? Keine Ahnung wie viel das hier sein müssen
                //System.out.print(world.getName() + " - SET time = " + time);
                try {
                    world.setTime(time);
                }
                catch (Exception ex) {

                }
            }
            try {
                Thread.sleep((long) delay);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}


Vielen Dank im vorraus. :)
Leider ist mein Minecraftserver nicht mehr verfügbar, weil ich nicht mehr die Zeit zum Pflegen hatte und auch keine User die gespielt haben.

http://develos.de - Interessante Artikel

Gebauer_01

User / Kunde

Posts: 2,304

  • Send private message

2

Monday, July 20th 2015, 4:52pm

Ich würde mir einfach einen Scheduler machen, der die Zeit beispielsweise alle 1000 Ticks um 100 Ticks zurücksetzt. Dadurch würdest du Nacht/Tag verlängern (Werte müssen natürlich angepasst werden)

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