Skip to content

Commit de992d1

Browse files
authored
Update collabcraft.java
1 parent 7e21570 commit de992d1

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,100 @@
1+
package io.papermc.collabcraft;
12

3+
import net.kyori.adventure.text.Component;
4+
import org.bukkit.Bukkit;
5+
import org.bukkit.event.*;
6+
import org.bukkit.command.*;
7+
import org.bukkit.boss.*;
8+
import org.bukkit.inventory.*;
9+
import org.bukkit.*;
10+
import org.bukkit.entity.*;
11+
import org.bukkit.event.player.*;
12+
import org.bukkit.plugin.java.JavaPlugin;
13+
import java.util.*;
14+
import java.lang.*;
15+
16+
public class collabcraft extends JavaPlugin implements Listener,CommandExecutor {
17+
private Player controller;
18+
private ArrayList<Player> waiting = new ArrayList<Player>();
19+
private int time = 30; //in seconds
20+
private BossBar turnTime = Bukkit.createBossBar("PlayerNameHere's turn",BarColor.BLUE,BarStyle.SOLID);
21+
private Runnable createRunnable(Player p){
22+
Runnable r = new Runnable(){
23+
public void run(){
24+
String name = p.getName();
25+
double progress = 0.0;
26+
turnTime.setTitle(name + "'s turn");
27+
while (waiting.get(0) == p){
28+
if (progress >= 100.0){
29+
waiting.remove(0);
30+
if (!(waiting.size() == 0)){
31+
Player author = waiting.get(0);
32+
p.setGameMode(GameMode.SPECTATOR);
33+
author.getInventory().setArmorContents(p.getInventory().getArmorContents());
34+
author.getInventory().setExtraContents(p.getInventory().getExtraContents());
35+
author.teleport(p.getLocation());
36+
author.setGameMode(GameMode.SURVIVAL);
37+
turnThread = new Thread(createRunnable(author));
38+
turnThread.start();
39+
}
40+
}
41+
progress = progress + 1.0;
42+
turnTime.setProgress(progress);
43+
try{
44+
Thread.sleep(time*10);
45+
}catch(Exception e){
46+
47+
}
48+
}
49+
}
50+
};
51+
return r;
52+
}
53+
private Thread turnThread;
54+
public void onEnable() {
55+
Bukkit.getPluginManager().registerEvents(this, this);
56+
turnTime.show();
57+
}
58+
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
59+
if (sender instanceof Player) {
60+
Player author = (Player) sender;
61+
if (cmd.getName().equalsIgnoreCase("bypassturn")){
62+
waiting.add(0,author);
63+
controller.setGameMode(GameMode.SPECTATOR);
64+
author.getInventory().setArmorContents(controller.getInventory().getArmorContents());
65+
author.getInventory().setExtraContents(controller.getInventory().getExtraContents());
66+
author.teleport(controller.getLocation());
67+
controller = author;
68+
controller.setGameMode(GameMode.SURVIVAL);
69+
turnThread = new Thread(createRunnable(controller));
70+
turnThread.start();
71+
return true;
72+
}else if (cmd.getName().equalsIgnoreCase("endturn")){
73+
if (waiting.contains(author)){
74+
waiting.remove(author);
75+
return true;
76+
}else{
77+
return false;
78+
}
79+
}else if (cmd.getName().equalsIgnoreCase("taketurn")){
80+
if (!(waiting.contains(author))){
81+
waiting.add(author);
82+
if (waiting.get(0) == author){
83+
turnThread = new Thread(createRunnable(author));
84+
turnThread.start();
85+
}
86+
return true;
87+
}else{
88+
return false;
89+
}
90+
}else if (cmd.getName().equalsIgnoreCase("controllertp")) {
91+
author.teleport(controller.getLocation());
92+
return true;
93+
}else{
94+
return false;
95+
}
96+
}else{
97+
return false;
98+
}
99+
}
100+
}

0 commit comments

Comments
 (0)