Skip to content

Commit 3fb585c

Browse files
authored
Initial commit
0 parents  commit 3fb585c

4 files changed

Lines changed: 163 additions & 0 deletions

File tree

pom.xml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>me.kekschen</groupId>
8+
<artifactId>gamemodefinder</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
<packaging>jar</packaging>
11+
12+
<name>GamemodeFinder</name>
13+
14+
<properties>
15+
<java.version>1.8</java.version>
16+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
17+
</properties>
18+
19+
<build>
20+
<plugins>
21+
<plugin>
22+
<groupId>org.apache.maven.plugins</groupId>
23+
<artifactId>maven-compiler-plugin</artifactId>
24+
<version>3.8.1</version>
25+
<configuration>
26+
<source>${java.version}</source>
27+
<target>${java.version}</target>
28+
</configuration>
29+
</plugin>
30+
<!--<plugin>
31+
<groupId>org.apache.maven.plugins</groupId>
32+
<artifactId>maven-shade-plugin</artifactId>
33+
<version>3.2.4</version>
34+
<executions>
35+
<execution>
36+
<phase>package</phase>
37+
<goals>
38+
<goal>shade</goal>
39+
</goals>
40+
<configuration>
41+
<createDependencyReducedPom>false</createDependencyReducedPom>
42+
</configuration>
43+
</execution>
44+
</executions>
45+
</plugin>-->
46+
</plugins>
47+
<resources>
48+
<resource>
49+
<directory>src/main/resources</directory>
50+
<filtering>true</filtering>
51+
</resource>
52+
</resources>
53+
</build>
54+
55+
<repositories>
56+
<repository>
57+
<id>spigotmc-repo</id>
58+
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
59+
</repository>
60+
<repository>
61+
<id>sonatype</id>
62+
<url>https://oss.sonatype.org/content/groups/public/</url>
63+
</repository>
64+
</repositories>
65+
66+
<dependencies>
67+
<dependency>
68+
<groupId>org.spigotmc</groupId>
69+
<artifactId>spigot-api</artifactId>
70+
<version>1.17.1-R0.1-SNAPSHOT</version>
71+
<scope>provided</scope>
72+
</dependency>
73+
</dependencies>
74+
</project>
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package me.kekschen.gamemodefinder;
2+
3+
import me.kekschen.gamemodefinder.listeners.GamemodeListener;
4+
import org.bukkit.Bukkit;
5+
import org.bukkit.GameMode;
6+
import org.bukkit.plugin.java.JavaPlugin;
7+
import org.bukkit.scheduler.BukkitRunnable;
8+
9+
public final class Gamemodefinder extends JavaPlugin {
10+
11+
private static Gamemodefinder INSTANCE;
12+
13+
public static Gamemodefinder getInstance() {
14+
return INSTANCE;
15+
}
16+
17+
@Override
18+
public void onLoad() {
19+
INSTANCE = this;
20+
}
21+
22+
@Override
23+
public void onEnable() {
24+
Bukkit.getPluginManager().registerEvents(new GamemodeListener(), this);
25+
/*new BukkitRunnable() {
26+
@Override
27+
public void run() {
28+
Bukkit.getOnlinePlayers().forEach(player -> {
29+
player.setGameMode(player.getGameMode() == GameMode.CREATIVE ? GameMode.SURVIVAL : GameMode.CREATIVE);
30+
});
31+
}
32+
}.runTaskLater(this, 40L);*/
33+
}
34+
35+
@Override
36+
public void onDisable() {
37+
// Plugin shutdown logic
38+
}
39+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package me.kekschen.gamemodefinder.listeners;
2+
3+
import me.kekschen.gamemodefinder.Gamemodefinder;
4+
import org.bukkit.Bukkit;
5+
import org.bukkit.event.EventHandler;
6+
import org.bukkit.event.Listener;
7+
import org.bukkit.event.player.PlayerGameModeChangeEvent;
8+
9+
import java.util.ArrayList;
10+
import java.util.Arrays;
11+
import java.util.logging.Logger;
12+
13+
public class GamemodeListener implements Listener {
14+
15+
Logger l;
16+
17+
public GamemodeListener() {
18+
l = Gamemodefinder.getInstance().getLogger();
19+
}
20+
21+
@EventHandler
22+
public void onGamemodeChange(PlayerGameModeChangeEvent e) {
23+
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
24+
ArrayList<StackTraceElement> stackElements = new ArrayList<>();
25+
for(int i = 2; i < stackTrace.length; i++) {
26+
if(stackTrace[i].toString().matches(".+//.+")) {
27+
stackElements.add(stackTrace[i]);
28+
}
29+
}
30+
l.info("§6§l--------------------------------------------------------------------------------");
31+
l.info("§6§lGamemode von User " + e.getPlayer().getName() + " zu " + e.getNewGameMode().name() + " geändert!");
32+
if(stackElements.size() == 0) {
33+
l.info("§6§lGeändert durch: Minecraft Built-In");
34+
} else {
35+
l.info("§6§lCallstack Trace:");
36+
for(int i = 0; i < stackElements.size(); i++) {
37+
String[] strSplit = stackElements.get(i).toString().split("//");
38+
l.info("§6§lPosition " + i + ". im Callstack: ");
39+
l.info("§6§l - Pluginname: " + strSplit[0]);
40+
l.info("§6§l - In Methode: " + strSplit[1]);
41+
}
42+
}
43+
l.info("§6§l--------------------------------------------------------------------------------");
44+
}
45+
}

src/main/resources/plugin.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
name: GamemodeFinder
2+
version: '${project.version}'
3+
author: kx
4+
main: me.kekschen.gamemodefinder.Gamemodefinder
5+
api-version: 1.17

0 commit comments

Comments
 (0)