186 lines
7.0 KiB
Diff
186 lines
7.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?=E3=84=97=E3=84=A0=CB=8B=20=E3=84=91=E3=84=A7=CB=8A?=
|
|
<tsao-chi@the-lingo.org>
|
|
Date: Fri, 19 Jun 2020 19:55:56 +0800
|
|
Subject: [PATCH] Remove Streams using IntelliJ IDEA
|
|
|
|
|
|
diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java
|
|
index ecd149157d4fb80444f34bf5633d74bcdb63dec5..966287589d7cbf4d626dcdf162ed8cea53cb0b34 100644
|
|
--- a/src/main/java/co/aikar/timings/TimingsReportListener.java
|
|
+++ b/src/main/java/co/aikar/timings/TimingsReportListener.java
|
|
@@ -60,7 +60,9 @@ public class TimingsReportListener implements net.kyori.adventure.audience.Forwa
|
|
|
|
@Override
|
|
public void sendMessage(@NotNull String message) {
|
|
- senders.forEach((sender) -> sender.sendMessage(message));
|
|
+ for (CommandSender sender : senders) {
|
|
+ sender.sendMessage(message);
|
|
+ }
|
|
}
|
|
|
|
public void addConsoleIfNeeded() {
|
|
diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java.orig b/src/main/java/co/aikar/timings/TimingsReportListener.java.orig
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..ef58a6c00f444bd498a2d8fc4e457236f393954f
|
|
--- /dev/null
|
|
+++ b/src/main/java/co/aikar/timings/TimingsReportListener.java.orig
|
|
@@ -0,0 +1,77 @@
|
|
+package co.aikar.timings;
|
|
+
|
|
+import com.google.common.collect.Lists;
|
|
+import org.apache.commons.lang.Validate;
|
|
+import org.bukkit.Bukkit;
|
|
+import org.bukkit.command.CommandSender;
|
|
+import org.bukkit.command.ConsoleCommandSender;
|
|
+import org.bukkit.command.MessageCommandSender;
|
|
+import org.bukkit.command.RemoteConsoleCommandSender;
|
|
+
|
|
+import java.util.List;
|
|
+import java.util.UUID;
|
|
+
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+import org.jetbrains.annotations.Nullable;
|
|
+
|
|
+@SuppressWarnings("WeakerAccess")
|
|
+public class TimingsReportListener implements MessageCommandSender {
|
|
+ private final List<CommandSender> senders;
|
|
+ private final Runnable onDone;
|
|
+ private String timingsURL;
|
|
+
|
|
+ public TimingsReportListener(@NotNull CommandSender senders) {
|
|
+ this(senders, null);
|
|
+ }
|
|
+ public TimingsReportListener(@NotNull CommandSender sender, @Nullable Runnable onDone) {
|
|
+ this(Lists.newArrayList(sender), onDone);
|
|
+ }
|
|
+ public TimingsReportListener(@NotNull List<CommandSender> senders) {
|
|
+ this(senders, null);
|
|
+ }
|
|
+ public TimingsReportListener(@NotNull List<CommandSender> senders, @Nullable Runnable onDone) {
|
|
+ Validate.notNull(senders);
|
|
+ Validate.notEmpty(senders);
|
|
+
|
|
+ this.senders = Lists.newArrayList(senders);
|
|
+ this.onDone = onDone;
|
|
+ }
|
|
+
|
|
+ @Nullable
|
|
+ public String getTimingsURL() {
|
|
+ return timingsURL;
|
|
+ }
|
|
+
|
|
+ public void done() {
|
|
+ done(null);
|
|
+ }
|
|
+
|
|
+ public void done(@Nullable String url) {
|
|
+ this.timingsURL = url;
|
|
+ if (onDone != null) {
|
|
+ onDone.run();
|
|
+ }
|
|
+ for (CommandSender sender : senders) {
|
|
+ if (sender instanceof TimingsReportListener) {
|
|
+ ((TimingsReportListener) sender).done();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void sendMessage(@NotNull String message) {
|
|
+ senders.forEach((sender) -> sender.sendMessage(message));
|
|
+ }
|
|
+
|
|
+ public void addConsoleIfNeeded() {
|
|
+ boolean hasConsole = false;
|
|
+ for (CommandSender sender : this.senders) {
|
|
+ if (sender instanceof ConsoleCommandSender || sender instanceof RemoteConsoleCommandSender) {
|
|
+ hasConsole = true;
|
|
+ }
|
|
+ }
|
|
+ if (!hasConsole) {
|
|
+ this.senders.add(Bukkit.getConsoleSender());
|
|
+ }
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/com/destroystokyo/paper/MaterialSetTag.java b/src/main/java/com/destroystokyo/paper/MaterialSetTag.java
|
|
index a02a02aa0c87e0f0ed9e509e4dcab01565b3d92a..0c3fef0b4fd7f0ba4e37600e5acc886838e1db13 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/MaterialSetTag.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/MaterialSetTag.java
|
|
@@ -13,7 +13,9 @@ import org.bukkit.block.BlockState;
|
|
import org.bukkit.block.data.BlockData;
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.Collection;
|
|
+import java.util.List;
|
|
import java.util.Set;
|
|
import java.util.function.Predicate;
|
|
import java.util.stream.Collectors;
|
|
diff --git a/src/main/java/io/papermc/paper/tag/BaseTag.java b/src/main/java/io/papermc/paper/tag/BaseTag.java
|
|
index 4b8552e4e4c07b197fa9431fa911535b0222561e..09276e7fd18c4d82c77d19550ace1c6000f21cb7 100644
|
|
--- a/src/main/java/io/papermc/paper/tag/BaseTag.java
|
|
+++ b/src/main/java/io/papermc/paper/tag/BaseTag.java
|
|
@@ -2,6 +2,7 @@ package io.papermc.paper.tag;
|
|
|
|
import com.google.common.collect.Lists;
|
|
import org.bukkit.Keyed;
|
|
+import org.bukkit.Material;
|
|
import org.bukkit.NamespacedKey;
|
|
import org.bukkit.Tag;
|
|
import org.jetbrains.annotations.NotNull;
|
|
@@ -84,7 +85,17 @@ public abstract class BaseTag<T extends Keyed, C extends BaseTag<T, C>> implemen
|
|
|
|
@NotNull
|
|
public C add(@NotNull Predicate<T> filter) {
|
|
- return add(getAllPossibleValues().stream().filter(globalPredicates.stream().reduce(Predicate::or).orElse(t -> true)).filter(filter).collect(Collectors.toSet()));
|
|
+ Set<T> set = new HashSet<>();
|
|
+ for (T material : getAllPossibleValues()) {
|
|
+ for(Predicate<T> tPredicate : globalPredicates) {
|
|
+ if (tPredicate.test(material)) {
|
|
+ if (filter.test(material)) {
|
|
+ set.add(material);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ return add(set);
|
|
}
|
|
|
|
@NotNull
|
|
@@ -124,7 +135,17 @@ public abstract class BaseTag<T extends Keyed, C extends BaseTag<T, C>> implemen
|
|
|
|
@NotNull
|
|
public C not(@NotNull Predicate<T> filter) {
|
|
- not(getAllPossibleValues().stream().filter(globalPredicates.stream().reduce(Predicate::or).orElse(t -> true)).filter(filter).collect(Collectors.toSet()));
|
|
+ Set<T> set = new HashSet<>();
|
|
+ for (T material : getAllPossibleValues()) {
|
|
+ for(Predicate<T> tPredicate : globalPredicates) {
|
|
+ if (tPredicate.test(material)) {
|
|
+ if (filter.test(material)) {
|
|
+ set.add(material);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ not(set);
|
|
return (C) this;
|
|
}
|
|
|
|
@@ -145,7 +166,14 @@ public abstract class BaseTag<T extends Keyed, C extends BaseTag<T, C>> implemen
|
|
|
|
@NotNull
|
|
public C ensureSize(@NotNull String label, int size) {
|
|
- long actual = this.tagged.stream().filter(globalPredicates.stream().reduce(Predicate::or).orElse(t -> true)).count();
|
|
+ long actual = 0L;
|
|
+ for (T material : this.tagged) {
|
|
+ for(Predicate<T> tPredicate : globalPredicates) {
|
|
+ if (tPredicate.test(material)) {
|
|
+ actual++;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
if (size != actual) {
|
|
throw new IllegalStateException(key.toString() + ": " + label + " - Expected " + size + " values, got " + actual);
|
|
}
|