/[projects]/miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/MapgenCommand.java
ViewVC logotype

Annotation of /miscJava/bukkit-minecraft-plugins/HoerupUtils/src/dk/thoerup/bukkit/hoeruputils/MapgenCommand.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1240 - (hide annotations) (download)
Tue Mar 22 19:50:46 2011 UTC (13 years, 2 months ago) by torben
File size: 1718 byte(s)
added /mapgen command
1 torben 1240 package dk.thoerup.bukkit.hoeruputils;
2    
3    
4     import java.util.concurrent.atomic.AtomicBoolean;
5    
6     import org.bukkit.ChatColor;
7     import org.bukkit.Server;
8     import org.bukkit.command.Command;
9     import org.bukkit.command.CommandExecutor;
10     import org.bukkit.command.CommandSender;
11     import org.bukkit.plugin.Plugin;
12    
13     public class MapgenCommand implements CommandExecutor{
14    
15     Server server;
16     Plugin plugin;
17    
18     AtomicBoolean started = new AtomicBoolean(false);
19    
20     public MapgenCommand(Plugin plugin) {
21     this.plugin = plugin;
22     server = plugin.getServer();
23     }
24     @Override
25     public boolean onCommand(final CommandSender sender, Command command, String label, String[] args) {
26    
27     if (started.compareAndSet(false, true)) {
28    
29     server.broadcastMessage(ChatColor.YELLOW + "mapgenerator has started");
30     server.getScheduler().scheduleAsyncDelayedTask(plugin, new MapgenRunner() );
31    
32     server.getWorlds().get(0).save(); //sync world files;
33     } else {
34     server.broadcastMessage(ChatColor.YELLOW + "mapgenerator is already running");
35     }
36     return false;
37     }
38    
39     class MapgenRunner implements Runnable {
40     @Override
41     public void run() {
42     String result = "failed";
43     try {
44     Process p = Runtime.getRuntime().exec("/home/minecraft/bin/createmap.sh all");
45     p.waitFor();
46     result = "finished";
47     } catch(Exception e) {}
48    
49     started.set(false);
50    
51     String msg = "" + ChatColor.YELLOW + "mapgenerator has " + result;
52     server.getScheduler().scheduleSyncDelayedTask(plugin, new MessageBroadcaster(msg) );
53     }
54     }
55    
56     class MessageBroadcaster implements Runnable{
57     String msg;
58    
59     public MessageBroadcaster(String msg) {
60     this.msg = msg;
61     }
62     @Override
63     public void run() {
64     server.broadcastMessage(msg);
65     }
66     }
67    
68     }

  ViewVC Help
Powered by ViewVC 1.1.20