Skip to content
This repository was archived by the owner on Feb 21, 2020. It is now read-only.

Commit 7972a94

Browse files
authored
Inital release.
1.0.0
1 parent 9b27cfb commit 7972a94

File tree

5 files changed

+172
-0
lines changed

5 files changed

+172
-0
lines changed

config.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
configuration:
2+
auto-broadcast-enabled: true
3+
broadcast-interval-time: 1
4+
language:
5+
msg-signal-1: "\u00a7aSet "
6+
msg-signal-2: " times experience for "
7+
msg-signal-3: " minute(s) successfully!"
8+
msg-getexp-1: "\u00a7a"
9+
msg-getexp-2: " times experience activities is holding, You have got "
10+
msg-getexp-3: " experience(s)!"
11+
msg-expired: "\u00a74Multi experience activity has expired!"
12+
msg-holding-1: "\u00a7a"
13+
msg-holding-2: " times experience activities is holding, Duration time "
14+
msg-holding-3: " minute(s)!"
15+
msg-broadcast-1: "\u00a7aNow "
16+
msg-broadcast-2: " times experience activities has opened, Duration of "
17+
msg-broadcast-3: " minute(s)!"
18+
usage: "\u00a7eUsage: /multiexp enable [multiple] [minute]"
19+
multiexp:
20+
enabled: false
21+
multiple: 2
22+
tick-time: 0
23+

plugin.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: MultiExperience
2+
main: org.meowcat.MultiExperience.Main
3+
author: MeowCat Studio MlgmXyysd
4+
version: 1.0.0
5+
commands:
6+
multiexp:
7+
permission: multiexp.admin
8+
description: Multi Experience Plugin Info
9+
usage: /<command> enable [multiple] [minute]
10+
permissions:
11+
multiexp.admin:
12+
default: op
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.meowcat.MultiExperience;
2+
3+
import org.bukkit.configuration.file.FileConfiguration;
4+
import org.bukkit.event.EventHandler;
5+
import org.bukkit.event.Listener;
6+
import org.bukkit.event.player.PlayerExpChangeEvent;
7+
8+
public class ExpListener implements Listener {
9+
10+
FileConfiguration getConfig = Main.plugin.getConfig();
11+
12+
@EventHandler
13+
public void ExperienceListener(PlayerExpChangeEvent event) {
14+
if (getConfig.getBoolean("multiexp.enabled")) {
15+
long CurrentTime = System.currentTimeMillis();
16+
long MultiTime = getConfig.getLong("multiexp.tick-time");
17+
if (CurrentTime <= MultiTime) {
18+
float Multiple = (float) getConfig.getDouble("multiexp.multiple");
19+
int PickedExp = event.getAmount();
20+
float CalculatedExp = PickedExp * Multiple;
21+
String message = getConfig.getString("language.msg-getexp-1") + Multiple + getConfig.getString("language.msg-getexp-2") + CalculatedExp + getConfig.getString("language.msg-getexp-3");
22+
event.setAmount(Math.round(CalculatedExp));
23+
event.getPlayer().sendMessage(message);
24+
} else {
25+
getConfig.set("multiexp.enabled", false);
26+
String expired = getConfig.getString("language.msg-expired");
27+
Main.plugin.getServer().broadcastMessage(expired);
28+
}
29+
}
30+
}
31+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.meowcat.MultiExperience;
2+
3+
import org.bukkit.configuration.file.FileConfiguration;
4+
5+
public class ExpThread extends Thread {
6+
7+
FileConfiguration getConfig = Main.plugin.getConfig();
8+
9+
@Override
10+
public void run()
11+
{
12+
while (Main.plugin.isEnabled()) {
13+
try {
14+
sleep(getConfig.getInt("configuration.broadcast-interval-time") * 60000);
15+
}
16+
catch (InterruptedException e) {
17+
e.printStackTrace();
18+
}
19+
if (!Main.plugin.isEnabled()) {
20+
return;
21+
}
22+
if (getConfig.getBoolean("multiexp.enabled")) {
23+
long CurrentTime = System.currentTimeMillis();
24+
long MultiTime = getConfig.getLong("multiexp.tick-time");
25+
if (CurrentTime <= MultiTime) {
26+
long RemainingTime = (MultiTime - CurrentTime) / 60000;
27+
double Multiple = getConfig.getDouble("multiexp.multiple");
28+
String broadcast = getConfig.getString("language.msg-holding-1") + Multiple + getConfig.getString("language.msg-holding-2") + Math.floor(RemainingTime) + getConfig.getString("language.msg-holding-3");
29+
Main.plugin.getServer().broadcastMessage(broadcast);
30+
}
31+
else {
32+
getConfig.set("multiexp.enabled", false);
33+
}
34+
}
35+
}
36+
}
37+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package org.meowcat.MultiExperience;
2+
3+
import org.bukkit.Bukkit;
4+
import org.bukkit.ChatColor;
5+
import org.bukkit.command.Command;
6+
import org.bukkit.command.CommandSender;
7+
import org.bukkit.event.Listener;
8+
import org.bukkit.plugin.java.JavaPlugin;
9+
10+
public class Main extends JavaPlugin implements Listener {
11+
12+
public static Main plugin;
13+
14+
@Override
15+
public void onEnable() {
16+
saveDefaultConfig();
17+
plugin = this;
18+
ExpListener listener = new ExpListener();
19+
getServer().getPluginManager().registerEvents(listener, plugin);
20+
boolean isBroadcast = getConfig().getBoolean("configuration.auto-broadcast-enabled");
21+
if (isBroadcast) {
22+
ExpThread ExpThread = new ExpThread();
23+
ExpThread.start();
24+
}
25+
Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "Multi Experience by MeowCat Studio");
26+
Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "Offical Website http://www.meowcat.org/");
27+
}
28+
29+
@Override
30+
public void onDisable() {
31+
saveConfig();
32+
Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "Multi Experience by MeowCat Studio");
33+
Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "Offical Website http://www.meowcat.org/");
34+
}
35+
36+
@Override
37+
public boolean onCommand(CommandSender player, Command command, String label, String[] arguments) {
38+
if (arguments.length > 0) {
39+
if (arguments[0].equalsIgnoreCase("enable")) {
40+
float Multiple = 2;
41+
long MultiTime = 60;
42+
long CurrentTime = System.currentTimeMillis();
43+
if (arguments.length > 1) {
44+
Multiple = Float.valueOf(arguments[1]);
45+
if (arguments.length > 2) {
46+
MultiTime = Long.valueOf(arguments[2]);
47+
}
48+
}
49+
long RemainingTime = MultiTime * 60000 + CurrentTime;
50+
getConfig().set("multiexp.enabled", true);
51+
getConfig().set("multiexp.multiple", Multiple);
52+
getConfig().set("multiexp.tick-time", RemainingTime);
53+
String message = getConfig().getString("language.msg-signal-1") + Multiple + getConfig().getString("language.msg-signal-2") + MultiTime + getConfig().getString("language.msg-signal-3");
54+
String broadcast = getConfig().getString("language.msg-broadcast-1") + Multiple + getConfig().getString("language.msg-broadcast-2") + MultiTime + getConfig().getString("language.msg-broadcast-3");
55+
player.sendMessage(message);
56+
getServer().broadcastMessage(broadcast);
57+
} else {
58+
String usage = getConfig().getString("language.usage");
59+
player.sendMessage(usage);
60+
}
61+
} else {
62+
String usage = getConfig().getString("language.usage");
63+
player.sendMessage("¡ìbMulti Experience by MeowCat Studio");
64+
player.sendMessage("¡ìbhttp://www.meowcat.org/");
65+
player.sendMessage(usage);
66+
}
67+
return true;
68+
}
69+
}

0 commit comments

Comments
 (0)