+124
.idea/uiDesigner.xml
+124
.idea/uiDesigner.xml
···
1
+
<?xml version="1.0" encoding="UTF-8"?>
2
+
<project version="4">
3
+
<component name="Palette2">
4
+
<group name="Swing">
5
+
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
6
+
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
7
+
</item>
8
+
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
9
+
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
10
+
</item>
11
+
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
12
+
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
13
+
</item>
14
+
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
15
+
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
16
+
</item>
17
+
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
18
+
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
19
+
<initial-values>
20
+
<property name="text" value="Button" />
21
+
</initial-values>
22
+
</item>
23
+
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
24
+
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
25
+
<initial-values>
26
+
<property name="text" value="RadioButton" />
27
+
</initial-values>
28
+
</item>
29
+
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
30
+
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
31
+
<initial-values>
32
+
<property name="text" value="CheckBox" />
33
+
</initial-values>
34
+
</item>
35
+
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
36
+
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
37
+
<initial-values>
38
+
<property name="text" value="Label" />
39
+
</initial-values>
40
+
</item>
41
+
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
42
+
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
43
+
<preferred-size width="150" height="-1" />
44
+
</default-constraints>
45
+
</item>
46
+
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
47
+
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
48
+
<preferred-size width="150" height="-1" />
49
+
</default-constraints>
50
+
</item>
51
+
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
52
+
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
53
+
<preferred-size width="150" height="-1" />
54
+
</default-constraints>
55
+
</item>
56
+
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
57
+
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
58
+
<preferred-size width="150" height="50" />
59
+
</default-constraints>
60
+
</item>
61
+
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
62
+
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
63
+
<preferred-size width="150" height="50" />
64
+
</default-constraints>
65
+
</item>
66
+
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
67
+
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
68
+
<preferred-size width="150" height="50" />
69
+
</default-constraints>
70
+
</item>
71
+
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
72
+
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
73
+
</item>
74
+
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
75
+
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
76
+
<preferred-size width="150" height="50" />
77
+
</default-constraints>
78
+
</item>
79
+
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
80
+
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
81
+
<preferred-size width="150" height="50" />
82
+
</default-constraints>
83
+
</item>
84
+
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
85
+
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
86
+
<preferred-size width="150" height="50" />
87
+
</default-constraints>
88
+
</item>
89
+
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
90
+
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
91
+
<preferred-size width="200" height="200" />
92
+
</default-constraints>
93
+
</item>
94
+
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
95
+
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
96
+
<preferred-size width="200" height="200" />
97
+
</default-constraints>
98
+
</item>
99
+
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
100
+
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
101
+
</item>
102
+
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
103
+
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
104
+
</item>
105
+
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
106
+
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
107
+
</item>
108
+
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
109
+
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
110
+
</item>
111
+
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
112
+
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
113
+
<preferred-size width="-1" height="20" />
114
+
</default-constraints>
115
+
</item>
116
+
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
117
+
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
118
+
</item>
119
+
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
120
+
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
121
+
</item>
122
+
</group>
123
+
</component>
124
+
</project>
+6
.idea/vcs.xml
+6
.idea/vcs.xml
out/artifacts/SSISAuth_jar/SSISAuth.jar
out/artifacts/SSISAuth_jar/SSISAuth.jar
This is a binary file and will not be displayed.
+5
pom.xml
+5
pom.xml
+3
src/main/java/com/keii/ssisauth/SSISAuth.java
+3
src/main/java/com/keii/ssisauth/SSISAuth.java
···
1
1
package com.keii.ssisauth;
2
2
3
+
import com.keii.ssisauth.commands.CommandMaintenance;
3
4
import com.keii.ssisauth.events.PlayerJoin;
4
5
import org.bukkit.ChatColor;
5
6
import org.bukkit.plugin.java.JavaPlugin;
···
10
11
11
12
@Override
12
13
public void onEnable() {
14
+
15
+
this.getCommand("maintenance").setExecutor(new CommandMaintenance());
13
16
getServer().getPluginManager().registerEvents(new PlayerJoin(), this);
14
17
getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "SSISAuth Enabled");
15
18
}
+68
src/main/java/com/keii/ssisauth/commands/CommandMaintenance.java
+68
src/main/java/com/keii/ssisauth/commands/CommandMaintenance.java
···
1
+
package com.keii.ssisauth.commands;
2
+
3
+
import com.google.common.hash.Hashing;
4
+
import org.bukkit.command.Command;
5
+
import org.bukkit.command.CommandExecutor;
6
+
import org.bukkit.command.CommandSender;
7
+
8
+
import java.io.IOException;
9
+
import java.net.URI;
10
+
import java.net.http.HttpClient;
11
+
import java.net.http.HttpRequest;
12
+
import java.net.http.HttpResponse;
13
+
import java.nio.charset.StandardCharsets;
14
+
import java.util.Date;
15
+
16
+
import static com.keii.ssisauth.SSISAuth.apiip;
17
+
18
+
public class CommandMaintenance implements CommandExecutor {
19
+
@Override
20
+
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
21
+
if(args.length < 2) {
22
+
sender.sendMessage("Not enough arguments!");
23
+
}
24
+
if(args[0] == "set") {
25
+
boolean setValue;
26
+
if(args[1] != "true" && args[1] != "1" && args[1] != "false" && args[1] != "0") {
27
+
sender.sendMessage("Invalid argument " + args[1]);
28
+
return true;
29
+
} else {
30
+
if(args[1] == "true" || args[1] == "1") {
31
+
setValue = true;
32
+
} else {
33
+
setValue = false;
34
+
}
35
+
}
36
+
37
+
HttpRequest request;
38
+
HttpResponse<String> response;
39
+
String responseText;
40
+
41
+
Date date = new Date();
42
+
var current = date.getMinutes() + date.getDay() + date.getMonth();
43
+
String sha256hex = Hashing.sha256()
44
+
.hashString(String.valueOf(current), StandardCharsets.UTF_8)
45
+
.toString();
46
+
47
+
HttpClient client = HttpClient.newHttpClient();
48
+
request = HttpRequest.newBuilder()
49
+
.uri(URI.create(apiip + "/api/v1/setmaintenance"))
50
+
.headers("Content-Type", "text/plain;charset=UTF-8")
51
+
.POST(HttpRequest.BodyPublishers.ofString(setValue ? "true," + sha256hex : "false," + sha256hex))
52
+
.build();
53
+
54
+
try {
55
+
response = client.send(request,
56
+
HttpResponse.BodyHandlers.ofString());
57
+
} catch (IOException e) {
58
+
throw new RuntimeException(e);
59
+
} catch (InterruptedException e) {
60
+
throw new RuntimeException(e);
61
+
}
62
+
63
+
responseText = response.body();
64
+
}
65
+
66
+
return true;
67
+
}
68
+
}
+29
-14
src/main/java/com/keii/ssisauth/events/PlayerJoin.java
+29
-14
src/main/java/com/keii/ssisauth/events/PlayerJoin.java
···
1
1
package com.keii.ssisauth.events;
2
2
3
+
import com.destroystokyo.paper.profile.PlayerProfile;
4
+
import com.destroystokyo.paper.profile.ProfileProperty;
5
+
import net.kyori.adventure.text.Component;
6
+
import net.kyori.adventure.text.TextComponent;
3
7
import org.bukkit.Bukkit;
4
8
import org.bukkit.ChatColor;
5
9
import org.bukkit.entity.Player;
···
15
19
import java.net.http.HttpClient;
16
20
import java.net.http.HttpRequest;
17
21
import java.net.http.HttpResponse;
22
+
import java.util.Set;
18
23
19
24
import static com.keii.ssisauth.SSISAuth.apiip;
20
25
21
26
public class PlayerJoin implements Listener {
22
27
@EventHandler
23
28
public static void onPlayerJoin(PlayerJoinEvent e) throws IOException, InterruptedException {
24
-
HttpClient client = HttpClient.newHttpClient();
25
-
HttpRequest request = HttpRequest.newBuilder()
26
-
.uri(URI.create(apiip + "/api/v1/checkuserjava?uuid=" + e.getPlayer().getUniqueId().toString()))
27
-
.build();
29
+
HttpRequest request;
30
+
HttpResponse<String> response;
31
+
String responseText;
32
+
try {
33
+
HttpClient client = HttpClient.newHttpClient();
34
+
request = HttpRequest.newBuilder()
35
+
.uri(URI.create(apiip + "/api/v1/checkuserjava?uuid=" + e.getPlayer().getUniqueId().toString()))
36
+
.build();
28
37
29
-
HttpResponse<String> response = client.send(request,
30
-
HttpResponse.BodyHandlers.ofString());
38
+
response = client.send(request,
39
+
HttpResponse.BodyHandlers.ofString());
40
+
41
+
responseText = response.body();
42
+
} catch(Exception error) {
43
+
e.getPlayer().kick(Component.text().content("Ser ut som att APIet har lite problem. Kontakta 22widi@stockholmscience.se").build());
44
+
return;
45
+
}
31
46
32
-
String responseText = response.body();
47
+
Bukkit.getServer().broadcast(Component.text().content(String.valueOf(response.statusCode())).build());
33
48
34
49
if(response.statusCode() == 401) {
35
-
e.getPlayer().kickPlayer("Registrera konto på https://mc.ssis.nu");
50
+
e.getPlayer().kick(Component.text().content("Registrera konto på https://mc.ssis.nu").build());
36
51
} else if(response.statusCode() == 200) {
37
52
String[] result = responseText.split(",");
38
53
39
54
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(),"nick " + e.getPlayer().getName() + " " + result[3] + result[4].charAt(0));
40
55
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "lp user " + e.getPlayer().getName() + " meta setprefix " + result[2]);
41
56
//e.getPlayer().setPlayerListName(ChatColor.YELLOW + result[2] + " " + ChatColor.WHITE + result[3] + result[4].charAt(0));
42
-
e.getPlayer().setPlayerListName(ChatColor.WHITE + result[3] + result[4].charAt(0));
57
+
e.getPlayer().playerListName(Component.text().content(ChatColor.WHITE + result[3] + result[4].charAt(0)).build());
43
58
44
-
e.getPlayer().getPlayerProfile().setName(ChatColor.WHITE + result[3] + result[4].charAt(0));
45
-
for(Player all : Bukkit.getOnlinePlayers()) {
46
-
all.hidePlayer(e.getPlayer());
47
-
all.showPlayer(e.getPlayer());
48
-
}
59
+
PlayerProfile oldProfile = e.getPlayer().getPlayerProfile();
60
+
Set<ProfileProperty> old = oldProfile.getProperties();
61
+
var profile = Bukkit.createProfileExact(e.getPlayer().getUniqueId(), "CustomName");
62
+
profile.setProperties(old); // The players previous properties
63
+
e.getPlayer().setPlayerProfile(profile);
49
64
}
50
65
}
51
66
}