Skip to content

Commit 057ab54

Browse files
committed
Added bStats
1 parent b3956c5 commit 057ab54

File tree

10 files changed

+818
-0
lines changed

10 files changed

+818
-0
lines changed

src/main/java/com/btk5h/skriptmirror/Metrics.java

Lines changed: 733 additions & 0 deletions
Large diffs are not rendered by default.

src/main/java/com/btk5h/skriptmirror/SkriptMirror.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,22 @@
22

33
import ch.njol.skript.Skript;
44
import ch.njol.skript.SkriptAddon;
5+
import ch.njol.skript.util.Version;
6+
import com.btk5h.skriptmirror.skript.CondParseLater;
7+
import com.btk5h.skriptmirror.skript.custom.condition.CustomConditionSection;
8+
import com.btk5h.skriptmirror.skript.custom.effect.CustomEffectSection;
9+
import com.btk5h.skriptmirror.skript.custom.event.CustomEventSection;
10+
import com.btk5h.skriptmirror.skript.custom.expression.CustomExpressionSection;
11+
import com.btk5h.skriptmirror.skript.reflect.ExprJavaCall;
12+
import com.btk5h.skriptmirror.skript.reflect.ExprProxy;
13+
import com.btk5h.skriptmirror.skript.reflect.sections.CondSection;
514
import com.btk5h.skriptmirror.util.SkriptReflection;
615
import org.bukkit.plugin.java.JavaPlugin;
716

817
import java.io.IOException;
918
import java.nio.file.Path;
19+
import java.util.HashMap;
20+
import java.util.Map;
1021

1122
public class SkriptMirror extends JavaPlugin {
1223
private static SkriptMirror instance;
@@ -37,6 +48,46 @@ public void onEnable() {
3748

3849
// Disable *all* and/or warnings
3950
SkriptReflection.disableAndOrWarnings();
51+
52+
Metrics metrics = new Metrics(this, 10157);
53+
54+
metrics.addCustomChart(new Metrics.DrilldownPie("skript_version", () -> {
55+
Map<String, Map<String, Integer>> map = new HashMap<>();
56+
57+
Version version = Skript.getVersion();
58+
Map<String, Integer> entry = new HashMap<>();
59+
entry.put(version.toString(), 1);
60+
61+
map.put("" + version.getMajor() + "." + version.getMinor(), entry);
62+
63+
return map;
64+
}));
65+
66+
metrics.addCustomChart(new Metrics.SimplePie("preload_enabled",
67+
() -> "" + getConfig().getBoolean("enable-preloading")));
68+
metrics.addCustomChart(new Metrics.SimplePie("deferred_parsing_used",
69+
() -> "" + CondParseLater.deferredParsingUsed));
70+
71+
metrics.addCustomChart(new Metrics.SingleLineChart("java_calls_made", () -> {
72+
int i = ExprJavaCall.javaCallsMade;
73+
ExprJavaCall.javaCallsMade = 0;
74+
return i;
75+
}));
76+
77+
metrics.addCustomChart(new Metrics.SimplePie("custom_conditions_used",
78+
() -> "" + CustomConditionSection.customConditionsUsed));
79+
metrics.addCustomChart(new Metrics.SimplePie("custom_effects_used",
80+
() -> "" + CustomEffectSection.customEffectsUsed));
81+
metrics.addCustomChart(new Metrics.SimplePie("custom_events_used",
82+
() -> "" + CustomEventSection.customEventsUsed));
83+
metrics.addCustomChart(new Metrics.SimplePie("custom_expressions_used",
84+
() -> "" + CustomExpressionSection.customExpressionsUsed));
85+
86+
metrics.addCustomChart(new Metrics.SimplePie("proxies_used",
87+
() -> "" + ExprProxy.proxiesUsed));
88+
metrics.addCustomChart(new Metrics.SimplePie("sections_used",
89+
() -> "" + CondSection.sectionsUsed));
90+
4091
}
4192

4293
public static SkriptAddon getAddonInstance() {

src/main/java/com/btk5h/skriptmirror/skript/CondParseLater.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import org.bukkit.event.Event;
99

1010
public class CondParseLater extends Condition {
11+
public static boolean deferredParsingUsed = false;
12+
1113
static {
1214
Skript.registerCondition(CondParseLater.class, "\\(parse[d] later\\) <.+>");
1315
}
@@ -45,6 +47,8 @@ public String toString(Event e, boolean debug) {
4547
@Override
4648
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed,
4749
SkriptParser.ParseResult parseResult) {
50+
deferredParsingUsed = true;
51+
4852
if (!Consent.Feature.DEFERRED_PARSING.hasConsent(SkriptUtil.getCurrentScript())) {
4953
Skript.error("This feature requires consent, because it is experimental.");
5054
return false;

src/main/java/com/btk5h/skriptmirror/skript/custom/condition/CustomConditionSection.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
import java.util.stream.Collectors;
2121

2222
public class CustomConditionSection extends CustomSyntaxSection<ConditionSyntaxInfo> {
23+
24+
public static boolean customConditionsUsed = false;
25+
2326
static {
2427
String[] syntax = {
2528
"[(1¦local)] condition <.+>",
@@ -59,6 +62,8 @@ public DataTracker<ConditionSyntaxInfo> getDataTracker() {
5962
@Override
6063
protected boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseResult parseResult,
6164
SectionNode node, boolean isPreload) {
65+
customConditionsUsed = true;
66+
6267
if (!isPreloaded) {
6368
String what;
6469
SectionNode patterns = (SectionNode) node.get("patterns");

src/main/java/com/btk5h/skriptmirror/skript/custom/effect/CustomEffectSection.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
import java.util.function.Supplier;
2121

2222
public class CustomEffectSection extends CustomSyntaxSection<EffectSyntaxInfo> {
23+
24+
public static boolean customEffectsUsed = false;
25+
2326
static {
2427
String[] syntax = {
2528
"[(1¦local)] effect <.+>",
@@ -57,6 +60,8 @@ public DataTracker<EffectSyntaxInfo> getDataTracker() {
5760
@Override
5861
protected boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseResult parseResult,
5962
SectionNode node, boolean isPreload) {
63+
customEffectsUsed = true;
64+
6065
if (!isPreloaded) {
6166
SectionNode patterns = (SectionNode) node.get("patterns");
6267
File script = (parseResult.mark & 1) == 1 ? SkriptUtil.getCurrentScript() : null;

src/main/java/com/btk5h/skriptmirror/skript/custom/event/CustomEventSection.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.*;
2020

2121
public class CustomEventSection extends CustomSyntaxSection<EventSyntaxInfo> {
22+
public static boolean customEventsUsed = false;
2223

2324
static {
2425
String[] syntax = {
@@ -59,6 +60,8 @@ protected DataTracker<EventSyntaxInfo> getDataTracker() {
5960
@Override
6061
protected boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseResult parseResult,
6162
SectionNode node, boolean isPreload) {
63+
customEventsUsed = true;
64+
6265
if (!isPreloaded) {
6366
File script = (parseResult.mark & 1) == 1 ? SkriptUtil.getCurrentScript() : null;
6467

src/main/java/com/btk5h/skriptmirror/skript/custom/expression/CustomExpressionSection.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import java.util.stream.StreamSupport;
2525

2626
public class CustomExpressionSection extends CustomSyntaxSection<ExpressionSyntaxInfo> {
27+
public static boolean customExpressionsUsed = false;
28+
2729
static {
2830
String[] syntax = {
2931
"[(2¦local)] [(1¦(plural|non(-|[ ])single))] expression <.+>",
@@ -75,6 +77,8 @@ protected DataTracker<ExpressionSyntaxInfo> getDataTracker() {
7577
@Override
7678
protected boolean init(Literal<?>[] args, int matchedPattern, SkriptParser.ParseResult parseResult,
7779
SectionNode node, boolean isPreload) {
80+
customExpressionsUsed = true;
81+
7882
if (!isPreloaded) {
7983
String what;
8084
SectionNode patterns = (SectionNode) node.get("patterns");

src/main/java/com/btk5h/skriptmirror/skript/reflect/ExprJavaCall.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
import java.util.stream.Stream;
3636

3737
public class ExprJavaCall<T> implements Expression<T> {
38+
public static int javaCallsMade = 0;
39+
3840
private static final MethodHandles.Lookup LOOKUP = MethodHandles.publicLookup();
3941
private static final Object[] NO_ARGS = new Object[0];
4042
private static final Descriptor CONSTRUCTOR_DESCRIPTOR = new Descriptor(null, "<init>", null);
@@ -408,6 +410,8 @@ private Collection<MethodHandle> createCallSite(Descriptor e) {
408410

409411
@SuppressWarnings("unchecked")
410412
private T invoke(Object target, Object[] arguments, Descriptor baseDescriptor) {
413+
javaCallsMade++;
414+
411415
if (baseDescriptor == null) {
412416
return null;
413417
}

src/main/java/com/btk5h/skriptmirror/skript/reflect/ExprProxy.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
import java.util.*;
2626

2727
public class ExprProxy extends SimpleExpression<Object> {
28+
29+
public static boolean proxiesUsed = false;
30+
2831
static {
2932
Skript.registerExpression(ExprProxy.class, Object.class, ExpressionType.COMBINED,
3033
"[a] [new] proxy [instance] of %javatypes% (using|from) %objects%");
@@ -138,6 +141,8 @@ public String toString(Event e, boolean debug) {
138141
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed,
139142
SkriptParser.ParseResult parseResult) {
140143

144+
proxiesUsed = true;
145+
141146
interfaces = SkriptUtil.defendExpression(exprs[0]);
142147
Expression<?> var = SkriptUtil.defendExpression(exprs[1]);
143148

src/main/java/com/btk5h/skriptmirror/skript/reflect/sections/CondSection.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
public class CondSection extends Condition {
2121

22+
public static boolean sectionsUsed = false;
23+
2224
static {
2325
Skript.registerCondition(CondSection.class,
2426
"create [new] section [with [arguments variables] %-objects%] (and store it|stored) in %objects%");
@@ -70,6 +72,8 @@ public String toString(@Nullable Event e, boolean debug) {
7072

7173
@Override
7274
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
75+
sectionsUsed = true;
76+
7377
if (!shouldInit)
7478
return false;
7579

0 commit comments

Comments
 (0)