ensure order

This commit is contained in:
sunmisc 2024-11-28 01:19:56 +03:00
parent 9b3c74237b
commit 368bd884f4
6 changed files with 36 additions and 28 deletions

View file

@ -2,6 +2,7 @@ package org.bukkit;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.bukkit.configuration.serialization.ConfigurationSerializable; import org.bukkit.configuration.serialization.ConfigurationSerializable;
@ -384,7 +385,7 @@ public final class FireworkEffect implements ConfigurationSerializable {
@NotNull @NotNull
@Override @Override
public Map<String, Object> serialize() { public Map<String, Object> serialize() {
return Map.of( return ImmutableMap.<String, Object>of(
FLICKER, flicker, FLICKER, flicker,
TRAIL, trail, TRAIL, trail,
COLORS, colors, COLORS, colors,

View file

@ -2,11 +2,12 @@ package org.bukkit;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableMap;
import java.util.*; import java.util.Iterator;
import java.util.function.Function; import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import java.util.stream.StreamSupport; import java.util.stream.StreamSupport;
import org.bukkit.advancement.Advancement; import org.bukkit.advancement.Advancement;
@ -404,12 +405,15 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
} }
protected SimpleRegistry(@NotNull Class<T> type, @NotNull Predicate<T> predicate) { protected SimpleRegistry(@NotNull Class<T> type, @NotNull Predicate<T> predicate) {
this.map = Arrays.stream(type.getEnumConstants()) ImmutableMap.Builder<NamespacedKey, T> builder = ImmutableMap.builder();
.filter(predicate)
.collect(Collectors.toUnmodifiableMap( for (T entry : type.getEnumConstants()) {
Keyed::getKey, if (predicate.test(entry)) {
Function.identity()) builder.put(entry.getKey(), entry);
); }
}
map = builder.build();
this.type = type; this.type = type;
} }

View file

@ -1,6 +1,7 @@
package org.bukkit.block.banner; package org.bukkit.block.banner;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import java.util.Map; import java.util.Map;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -63,7 +64,7 @@ public class Pattern implements ConfigurationSerializable {
@NotNull @NotNull
@Override @Override
public Map<String, Object> serialize() { public Map<String, Object> serialize() {
return Map.of( return ImmutableMap.<String, Object>of(
COLOR, color.toString(), COLOR, color.toString(),
PATTERN, pattern.getKey().toString() PATTERN, pattern.getKey().toString()
); );

View file

@ -1,11 +1,10 @@
package org.bukkit.event.inventory; package org.bukkit.event.inventory;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
import java.util.Collections; import java.util.Collections;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.HumanEntity; import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -73,10 +72,11 @@ public class InventoryDragEvent extends InventoryInteractEvent {
this.newCursor = newCursor; this.newCursor = newCursor;
this.oldCursor = oldCursor; this.oldCursor = oldCursor;
this.addedItems = slots; this.addedItems = slots;
this.containerSlots = slots.keySet() ImmutableSet.Builder<Integer> b = ImmutableSet.builder();
.stream() for (Integer slot : slots.keySet()) {
.map(what::convertSlot) b.add(what.convertSlot(slot));
.collect(Collectors.toUnmodifiableSet()); }
this.containerSlots = b.build();
} }
/** /**

View file

@ -2,6 +2,7 @@ package org.bukkit.plugin;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import java.io.InputStream; import java.io.InputStream;
import java.io.Reader; import java.io.Reader;
import java.io.Writer; import java.io.Writer;
@ -1126,7 +1127,7 @@ public final class PluginDescriptionFile {
} }
contributors = contributorsBuilder.build(); contributors = contributorsBuilder.build();
} else { } else {
contributors = List.<String>of(); contributors = List.of();
} }
if (map.get("default-permission") != null) { if (map.get("default-permission") != null) {
@ -1148,7 +1149,7 @@ public final class PluginDescriptionFile {
} catch (ClassCastException ex) { } catch (ClassCastException ex) {
throw new InvalidDescriptionException(ex, "awareness has wrong type"); throw new InvalidDescriptionException(ex, "awareness has wrong type");
} }
this.awareness = Set.copyOf(awareness); this.awareness = ImmutableSet.copyOf(awareness);
} }
if (map.get("api-version") != null) { if (map.get("api-version") != null) {

View file

@ -1,6 +1,7 @@
package org.bukkit.potion; package org.bukkit.potion;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import java.util.Map; import java.util.Map;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -142,14 +143,14 @@ public class PotionEffect implements ConfigurationSerializable {
@Override @Override
@NotNull @NotNull
public Map<String, Object> serialize() { public Map<String, Object> serialize() {
return Map.of( return ImmutableMap.<String, Object>builder()
TYPE, type.getKey().toString(), .put(TYPE, type.getKey().toString())
DURATION, duration, .put(DURATION, duration)
AMPLIFIER, amplifier, .put(AMPLIFIER, amplifier)
AMBIENT, ambient, .put(AMBIENT, ambient)
PARTICLES, particles, .put(PARTICLES, particles)
ICON, icon .put(ICON, icon)
); .build();
} }