From 9f246386db2335ac74adaa3755672469521c41a6 Mon Sep 17 00:00:00 2001 From: Olof Larsson Date: Thu, 8 Dec 2011 22:56:52 +0100 Subject: [PATCH] Added inventory gson type adapter as well as some other derp. --- .gitignore | 0 README.md | 0 plugin.yml | 0 src/com/massivecraft/core/Lang.java | 0 ...onymousAndLocalClassExclusionStrategy.java | 0 .../massivecraft/core/lib/gson2/Cache.java | 0 .../gson2/CamelCaseSeparatorNamingPolicy.java | 0 .../gson2/CompositionFieldNamingPolicy.java | 0 .../core/lib/gson2/DefaultTypeAdapters.java | 0 .../gson2/DisjunctionExclusionStrategy.java | 0 .../core/lib/gson2/ExclusionStrategy.java | 0 ...ationDeserializationExclusionStrategy.java | 0 ...otationSerializationExclusionStrategy.java | 0 .../core/lib/gson2/FieldAttributes.java | 0 .../core/lib/gson2/FieldNamingPolicy.java | 0 .../core/lib/gson2/FieldNamingStrategy.java | 0 .../core/lib/gson2/FieldNamingStrategy2.java | 0 .../gson2/FieldNamingStrategy2Adapter.java | 0 src/com/massivecraft/core/lib/gson2/Gson.java | 0 .../core/lib/gson2/GsonBuilder.java | 0 .../GsonToMiniGsonTypeAdapterFactory.java | 0 .../gson2/InnerClassExclusionStrategy.java | 0 .../core/lib/gson2/InstanceCreator.java | 0 .../core/lib/gson2/JavaFieldNamingPolicy.java | 0 .../core/lib/gson2/JsonArray.java | 0 .../lib/gson2/JsonDeserializationContext.java | 0 .../core/lib/gson2/JsonDeserializer.java | 0 .../JsonDeserializerExceptionWrapper.java | 0 .../core/lib/gson2/JsonElement.java | 0 .../core/lib/gson2/JsonElementVisitor.java | 0 .../core/lib/gson2/JsonIOException.java | 0 .../massivecraft/core/lib/gson2/JsonNull.java | 0 .../core/lib/gson2/JsonObject.java | 0 .../core/lib/gson2/JsonParseException.java | 0 .../core/lib/gson2/JsonParser.java | 0 .../core/lib/gson2/JsonPrimitive.java | 0 .../lib/gson2/JsonSerializationContext.java | 0 .../core/lib/gson2/JsonSerializer.java | 0 .../core/lib/gson2/JsonStreamParser.java | 0 .../core/lib/gson2/JsonSyntaxException.java | 0 .../lib/gson2/LongSerializationPolicy.java | 0 .../LowerCamelCaseSeparatorNamingPolicy.java | 0 .../core/lib/gson2/LowerCaseNamingPolicy.java | 0 .../massivecraft/core/lib/gson2/LruCache.java | 0 .../gson2/ModifierBasedExclusionStrategy.java | 0 .../gson2/ModifyFirstLetterNamingPolicy.java | 0 .../lib/gson2/RecursiveFieldNamingPolicy.java | 0 ...ameAnnotationInterceptingNamingPolicy.java | 0 .../SyntheticFieldExclusionStrategy.java | 0 .../UpperCamelCaseSeparatorNamingPolicy.java | 0 .../core/lib/gson2/UpperCaseNamingPolicy.java | 0 .../core/lib/gson2/VersionConstants.java | 0 .../lib/gson2/VersionExclusionStrategy.java | 0 .../core/lib/gson2/annotations/Expose.java | 0 .../lib/gson2/annotations/SerializedName.java | 0 .../core/lib/gson2/annotations/Since.java | 0 .../core/lib/gson2/annotations/Until.java | 0 .../lib/gson2/annotations/package-info.java | 0 .../gson2/internal/$Gson$Preconditions.java | 0 .../core/lib/gson2/internal/$Gson$Types.java | 0 .../internal/ConstructorConstructor.java | 0 .../gson2/internal/LazilyParsedNumber.java | 0 .../lib/gson2/internal/ObjectConstructor.java | 0 .../core/lib/gson2/internal/Pair.java | 0 .../internal/ParameterizedTypeHandlerMap.java | 0 .../core/lib/gson2/internal/Primitives.java | 0 .../core/lib/gson2/internal/Streams.java | 0 .../lib/gson2/internal/UnsafeAllocator.java | 0 .../gson2/internal/bind/ArrayTypeAdapter.java | 0 .../internal/bind/BigDecimalTypeAdapter.java | 0 .../internal/bind/BigIntegerTypeAdapter.java | 0 .../bind/CollectionTypeAdapterFactory.java | 0 .../gson2/internal/bind/DateTypeAdapter.java | 0 .../bind/ExcludedTypeAdapterFactory.java | 0 .../internal/bind/JsonElementReader.java | 0 .../internal/bind/JsonElementWriter.java | 0 .../internal/bind/MapTypeAdapterFactory.java | 0 .../lib/gson2/internal/bind/MiniGson.java | 0 .../internal/bind/ObjectTypeAdapter.java | 0 .../lib/gson2/internal/bind/Reflection.java | 0 .../bind/ReflectiveTypeAdapterFactory.java | 0 .../internal/bind/SqlDateTypeAdapter.java | 0 .../StringToValueMapTypeAdapterFactory.java | 0 .../gson2/internal/bind/TimeTypeAdapter.java | 0 .../lib/gson2/internal/bind/TypeAdapter.java | 0 .../bind/TypeAdapterRuntimeTypeWrapper.java | 0 .../lib/gson2/internal/bind/TypeAdapters.java | 0 .../core/lib/gson2/internal/package-info.java | 0 .../core/lib/gson2/package-info.java | 0 .../core/lib/gson2/reflect/TypeToken.java | 0 .../core/lib/gson2/reflect/package-info.java | 0 .../core/lib/gson2/stream/JsonReader.java | 0 .../core/lib/gson2/stream/JsonScope.java | 0 .../core/lib/gson2/stream/JsonToken.java | 0 .../core/lib/gson2/stream/JsonWriter.java | 0 .../gson2/stream/MalformedJsonException.java | 0 .../core/lib/gson2/stream/StringPool.java | 0 src/com/massivecraft/core/persist/Entity.java | 2 +- .../core/persist/IClassManager.java | 0 .../massivecraft/core/persist/Persist.java | 0 .../core/persist/PersistRealm.java | 0 .../core/persist/PlayerEntity.java | 0 .../massivecraft/core/persist/Predictate.java | 0 .../massivecraft/core/persist/SaveTask.java | 0 .../core/persist/gson/GsonClassManager.java | 0 .../persist/gson/GsonPlayerEntityManager.java | 0 .../core/persist/gson/JsonFileFilter.java | 0 .../gson/adapter/InventoryTypeAdapter.java | 141 ++++++++++++++++++ src/com/massivecraft/core/plugin/MCore.java | 6 +- .../plugin/listener/PluginPlayerListener.java | 0 .../plugin/listener/PluginServerListener.java | 0 .../listener/PluginServerListenerMonitor.java | 0 .../massivecraft/core/text/TextDesign.java | 55 +++---- src/com/massivecraft/core/text/TextUtil.java | 84 +++++++---- .../massivecraft/core/util/ClassLoadHack.java | 0 src/com/massivecraft/core/util/DiscUtil.java | 78 ++++++++++ src/com/massivecraft/core/util/PermUtil.java | 0 src/com/massivecraft/core/util/SmokeUtil.java | 0 118 files changed, 295 insertions(+), 71 deletions(-) mode change 100755 => 100644 .gitignore mode change 100755 => 100644 README.md mode change 100755 => 100644 plugin.yml mode change 100755 => 100644 src/com/massivecraft/core/Lang.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/AnonymousAndLocalClassExclusionStrategy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/Cache.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/CamelCaseSeparatorNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/CompositionFieldNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/DefaultTypeAdapters.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/DisjunctionExclusionStrategy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/ExclusionStrategy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/ExposeAnnotationDeserializationExclusionStrategy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/ExposeAnnotationSerializationExclusionStrategy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/FieldAttributes.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/FieldNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/FieldNamingStrategy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2Adapter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/Gson.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/GsonBuilder.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/GsonToMiniGsonTypeAdapterFactory.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/InnerClassExclusionStrategy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/InstanceCreator.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JavaFieldNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonArray.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonDeserializationContext.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonDeserializer.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonDeserializerExceptionWrapper.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonElement.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonElementVisitor.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonIOException.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonNull.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonObject.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonParseException.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonParser.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonPrimitive.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonSerializationContext.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonSerializer.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonStreamParser.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/JsonSyntaxException.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/LongSerializationPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/LowerCamelCaseSeparatorNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/LowerCaseNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/LruCache.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/ModifierBasedExclusionStrategy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/ModifyFirstLetterNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/RecursiveFieldNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/SerializedNameAnnotationInterceptingNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/SyntheticFieldExclusionStrategy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/UpperCamelCaseSeparatorNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/UpperCaseNamingPolicy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/VersionConstants.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/VersionExclusionStrategy.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/annotations/Expose.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/annotations/SerializedName.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/annotations/Since.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/annotations/Until.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/annotations/package-info.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/$Gson$Preconditions.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/$Gson$Types.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/ConstructorConstructor.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/LazilyParsedNumber.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/ObjectConstructor.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/Pair.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/ParameterizedTypeHandlerMap.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/Primitives.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/Streams.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/UnsafeAllocator.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/ArrayTypeAdapter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/BigDecimalTypeAdapter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/BigIntegerTypeAdapter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/CollectionTypeAdapterFactory.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/DateTypeAdapter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/ExcludedTypeAdapterFactory.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementReader.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementWriter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/MapTypeAdapterFactory.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/MiniGson.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/ObjectTypeAdapter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/Reflection.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/ReflectiveTypeAdapterFactory.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/SqlDateTypeAdapter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/StringToValueMapTypeAdapterFactory.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/TimeTypeAdapter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapterRuntimeTypeWrapper.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapters.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/internal/package-info.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/package-info.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/reflect/TypeToken.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/reflect/package-info.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/stream/JsonReader.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/stream/JsonScope.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/stream/JsonToken.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/stream/JsonWriter.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/stream/MalformedJsonException.java mode change 100755 => 100644 src/com/massivecraft/core/lib/gson2/stream/StringPool.java mode change 100755 => 100644 src/com/massivecraft/core/persist/Entity.java mode change 100755 => 100644 src/com/massivecraft/core/persist/IClassManager.java mode change 100755 => 100644 src/com/massivecraft/core/persist/Persist.java mode change 100755 => 100644 src/com/massivecraft/core/persist/PersistRealm.java mode change 100755 => 100644 src/com/massivecraft/core/persist/PlayerEntity.java mode change 100755 => 100644 src/com/massivecraft/core/persist/Predictate.java mode change 100755 => 100644 src/com/massivecraft/core/persist/SaveTask.java mode change 100755 => 100644 src/com/massivecraft/core/persist/gson/GsonClassManager.java mode change 100755 => 100644 src/com/massivecraft/core/persist/gson/GsonPlayerEntityManager.java mode change 100755 => 100644 src/com/massivecraft/core/persist/gson/JsonFileFilter.java create mode 100644 src/com/massivecraft/core/persist/gson/adapter/InventoryTypeAdapter.java mode change 100755 => 100644 src/com/massivecraft/core/plugin/MCore.java mode change 100755 => 100644 src/com/massivecraft/core/plugin/listener/PluginPlayerListener.java mode change 100755 => 100644 src/com/massivecraft/core/plugin/listener/PluginServerListener.java mode change 100755 => 100644 src/com/massivecraft/core/plugin/listener/PluginServerListenerMonitor.java mode change 100755 => 100644 src/com/massivecraft/core/text/TextDesign.java mode change 100755 => 100644 src/com/massivecraft/core/text/TextUtil.java mode change 100755 => 100644 src/com/massivecraft/core/util/ClassLoadHack.java create mode 100644 src/com/massivecraft/core/util/DiscUtil.java mode change 100755 => 100644 src/com/massivecraft/core/util/PermUtil.java mode change 100755 => 100644 src/com/massivecraft/core/util/SmokeUtil.java diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/plugin.yml b/plugin.yml old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/Lang.java b/src/com/massivecraft/core/Lang.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/AnonymousAndLocalClassExclusionStrategy.java b/src/com/massivecraft/core/lib/gson2/AnonymousAndLocalClassExclusionStrategy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/Cache.java b/src/com/massivecraft/core/lib/gson2/Cache.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/CamelCaseSeparatorNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/CamelCaseSeparatorNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/CompositionFieldNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/CompositionFieldNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/DefaultTypeAdapters.java b/src/com/massivecraft/core/lib/gson2/DefaultTypeAdapters.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/DisjunctionExclusionStrategy.java b/src/com/massivecraft/core/lib/gson2/DisjunctionExclusionStrategy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/ExclusionStrategy.java b/src/com/massivecraft/core/lib/gson2/ExclusionStrategy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/ExposeAnnotationDeserializationExclusionStrategy.java b/src/com/massivecraft/core/lib/gson2/ExposeAnnotationDeserializationExclusionStrategy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/ExposeAnnotationSerializationExclusionStrategy.java b/src/com/massivecraft/core/lib/gson2/ExposeAnnotationSerializationExclusionStrategy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/FieldAttributes.java b/src/com/massivecraft/core/lib/gson2/FieldAttributes.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/FieldNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/FieldNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy.java b/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2.java b/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2Adapter.java b/src/com/massivecraft/core/lib/gson2/FieldNamingStrategy2Adapter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/Gson.java b/src/com/massivecraft/core/lib/gson2/Gson.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/GsonBuilder.java b/src/com/massivecraft/core/lib/gson2/GsonBuilder.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/GsonToMiniGsonTypeAdapterFactory.java b/src/com/massivecraft/core/lib/gson2/GsonToMiniGsonTypeAdapterFactory.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/InnerClassExclusionStrategy.java b/src/com/massivecraft/core/lib/gson2/InnerClassExclusionStrategy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/InstanceCreator.java b/src/com/massivecraft/core/lib/gson2/InstanceCreator.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JavaFieldNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/JavaFieldNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonArray.java b/src/com/massivecraft/core/lib/gson2/JsonArray.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonDeserializationContext.java b/src/com/massivecraft/core/lib/gson2/JsonDeserializationContext.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonDeserializer.java b/src/com/massivecraft/core/lib/gson2/JsonDeserializer.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonDeserializerExceptionWrapper.java b/src/com/massivecraft/core/lib/gson2/JsonDeserializerExceptionWrapper.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonElement.java b/src/com/massivecraft/core/lib/gson2/JsonElement.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonElementVisitor.java b/src/com/massivecraft/core/lib/gson2/JsonElementVisitor.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonIOException.java b/src/com/massivecraft/core/lib/gson2/JsonIOException.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonNull.java b/src/com/massivecraft/core/lib/gson2/JsonNull.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonObject.java b/src/com/massivecraft/core/lib/gson2/JsonObject.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonParseException.java b/src/com/massivecraft/core/lib/gson2/JsonParseException.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonParser.java b/src/com/massivecraft/core/lib/gson2/JsonParser.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonPrimitive.java b/src/com/massivecraft/core/lib/gson2/JsonPrimitive.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonSerializationContext.java b/src/com/massivecraft/core/lib/gson2/JsonSerializationContext.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonSerializer.java b/src/com/massivecraft/core/lib/gson2/JsonSerializer.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonStreamParser.java b/src/com/massivecraft/core/lib/gson2/JsonStreamParser.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/JsonSyntaxException.java b/src/com/massivecraft/core/lib/gson2/JsonSyntaxException.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/LongSerializationPolicy.java b/src/com/massivecraft/core/lib/gson2/LongSerializationPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/LowerCamelCaseSeparatorNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/LowerCamelCaseSeparatorNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/LowerCaseNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/LowerCaseNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/LruCache.java b/src/com/massivecraft/core/lib/gson2/LruCache.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/ModifierBasedExclusionStrategy.java b/src/com/massivecraft/core/lib/gson2/ModifierBasedExclusionStrategy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/ModifyFirstLetterNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/ModifyFirstLetterNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/RecursiveFieldNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/RecursiveFieldNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/SerializedNameAnnotationInterceptingNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/SerializedNameAnnotationInterceptingNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/SyntheticFieldExclusionStrategy.java b/src/com/massivecraft/core/lib/gson2/SyntheticFieldExclusionStrategy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/UpperCamelCaseSeparatorNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/UpperCamelCaseSeparatorNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/UpperCaseNamingPolicy.java b/src/com/massivecraft/core/lib/gson2/UpperCaseNamingPolicy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/VersionConstants.java b/src/com/massivecraft/core/lib/gson2/VersionConstants.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/VersionExclusionStrategy.java b/src/com/massivecraft/core/lib/gson2/VersionExclusionStrategy.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/annotations/Expose.java b/src/com/massivecraft/core/lib/gson2/annotations/Expose.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/annotations/SerializedName.java b/src/com/massivecraft/core/lib/gson2/annotations/SerializedName.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/annotations/Since.java b/src/com/massivecraft/core/lib/gson2/annotations/Since.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/annotations/Until.java b/src/com/massivecraft/core/lib/gson2/annotations/Until.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/annotations/package-info.java b/src/com/massivecraft/core/lib/gson2/annotations/package-info.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/$Gson$Preconditions.java b/src/com/massivecraft/core/lib/gson2/internal/$Gson$Preconditions.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/$Gson$Types.java b/src/com/massivecraft/core/lib/gson2/internal/$Gson$Types.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/ConstructorConstructor.java b/src/com/massivecraft/core/lib/gson2/internal/ConstructorConstructor.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/LazilyParsedNumber.java b/src/com/massivecraft/core/lib/gson2/internal/LazilyParsedNumber.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/ObjectConstructor.java b/src/com/massivecraft/core/lib/gson2/internal/ObjectConstructor.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/Pair.java b/src/com/massivecraft/core/lib/gson2/internal/Pair.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/ParameterizedTypeHandlerMap.java b/src/com/massivecraft/core/lib/gson2/internal/ParameterizedTypeHandlerMap.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/Primitives.java b/src/com/massivecraft/core/lib/gson2/internal/Primitives.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/Streams.java b/src/com/massivecraft/core/lib/gson2/internal/Streams.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/UnsafeAllocator.java b/src/com/massivecraft/core/lib/gson2/internal/UnsafeAllocator.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/ArrayTypeAdapter.java b/src/com/massivecraft/core/lib/gson2/internal/bind/ArrayTypeAdapter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/BigDecimalTypeAdapter.java b/src/com/massivecraft/core/lib/gson2/internal/bind/BigDecimalTypeAdapter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/BigIntegerTypeAdapter.java b/src/com/massivecraft/core/lib/gson2/internal/bind/BigIntegerTypeAdapter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/CollectionTypeAdapterFactory.java b/src/com/massivecraft/core/lib/gson2/internal/bind/CollectionTypeAdapterFactory.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/DateTypeAdapter.java b/src/com/massivecraft/core/lib/gson2/internal/bind/DateTypeAdapter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/ExcludedTypeAdapterFactory.java b/src/com/massivecraft/core/lib/gson2/internal/bind/ExcludedTypeAdapterFactory.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementReader.java b/src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementReader.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementWriter.java b/src/com/massivecraft/core/lib/gson2/internal/bind/JsonElementWriter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/MapTypeAdapterFactory.java b/src/com/massivecraft/core/lib/gson2/internal/bind/MapTypeAdapterFactory.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/MiniGson.java b/src/com/massivecraft/core/lib/gson2/internal/bind/MiniGson.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/ObjectTypeAdapter.java b/src/com/massivecraft/core/lib/gson2/internal/bind/ObjectTypeAdapter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/Reflection.java b/src/com/massivecraft/core/lib/gson2/internal/bind/Reflection.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/ReflectiveTypeAdapterFactory.java b/src/com/massivecraft/core/lib/gson2/internal/bind/ReflectiveTypeAdapterFactory.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/SqlDateTypeAdapter.java b/src/com/massivecraft/core/lib/gson2/internal/bind/SqlDateTypeAdapter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/StringToValueMapTypeAdapterFactory.java b/src/com/massivecraft/core/lib/gson2/internal/bind/StringToValueMapTypeAdapterFactory.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/TimeTypeAdapter.java b/src/com/massivecraft/core/lib/gson2/internal/bind/TimeTypeAdapter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapter.java b/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapterRuntimeTypeWrapper.java b/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapterRuntimeTypeWrapper.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapters.java b/src/com/massivecraft/core/lib/gson2/internal/bind/TypeAdapters.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/internal/package-info.java b/src/com/massivecraft/core/lib/gson2/internal/package-info.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/package-info.java b/src/com/massivecraft/core/lib/gson2/package-info.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/reflect/TypeToken.java b/src/com/massivecraft/core/lib/gson2/reflect/TypeToken.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/reflect/package-info.java b/src/com/massivecraft/core/lib/gson2/reflect/package-info.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/stream/JsonReader.java b/src/com/massivecraft/core/lib/gson2/stream/JsonReader.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/stream/JsonScope.java b/src/com/massivecraft/core/lib/gson2/stream/JsonScope.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/stream/JsonToken.java b/src/com/massivecraft/core/lib/gson2/stream/JsonToken.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/stream/JsonWriter.java b/src/com/massivecraft/core/lib/gson2/stream/JsonWriter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/stream/MalformedJsonException.java b/src/com/massivecraft/core/lib/gson2/stream/MalformedJsonException.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/lib/gson2/stream/StringPool.java b/src/com/massivecraft/core/lib/gson2/stream/StringPool.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/persist/Entity.java b/src/com/massivecraft/core/persist/Entity.java old mode 100755 new mode 100644 index 2d33142c..56e71f2d --- a/src/com/massivecraft/core/persist/Entity.java +++ b/src/com/massivecraft/core/persist/Entity.java @@ -6,7 +6,7 @@ package com.massivecraft.core.persist; * Entity class. It just contains a set of shortcut methods. */ -// Self referencing generics using the "getThis trick". +// Self referencing generic using the "getThis trick". // http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html#FAQ206 public abstract class Entity> { diff --git a/src/com/massivecraft/core/persist/IClassManager.java b/src/com/massivecraft/core/persist/IClassManager.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/persist/Persist.java b/src/com/massivecraft/core/persist/Persist.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/persist/PersistRealm.java b/src/com/massivecraft/core/persist/PersistRealm.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/persist/PlayerEntity.java b/src/com/massivecraft/core/persist/PlayerEntity.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/persist/Predictate.java b/src/com/massivecraft/core/persist/Predictate.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/persist/SaveTask.java b/src/com/massivecraft/core/persist/SaveTask.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/persist/gson/GsonClassManager.java b/src/com/massivecraft/core/persist/gson/GsonClassManager.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/persist/gson/GsonPlayerEntityManager.java b/src/com/massivecraft/core/persist/gson/GsonPlayerEntityManager.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/persist/gson/JsonFileFilter.java b/src/com/massivecraft/core/persist/gson/JsonFileFilter.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/persist/gson/adapter/InventoryTypeAdapter.java b/src/com/massivecraft/core/persist/gson/adapter/InventoryTypeAdapter.java new file mode 100644 index 00000000..1fe84d8d --- /dev/null +++ b/src/com/massivecraft/core/persist/gson/adapter/InventoryTypeAdapter.java @@ -0,0 +1,141 @@ +package com.massivecraft.core.persist.gson.adapter; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map.Entry; +import java.util.logging.Logger; + +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.getspout.spoutapi.SpoutManager; + +import com.massivecraft.core.lib.gson2.JsonDeserializationContext; +import com.massivecraft.core.lib.gson2.JsonDeserializer; +import com.massivecraft.core.lib.gson2.JsonElement; +import com.massivecraft.core.lib.gson2.JsonObject; +import com.massivecraft.core.lib.gson2.JsonParseException; +import com.massivecraft.core.lib.gson2.JsonPrimitive; +import com.massivecraft.core.lib.gson2.JsonSerializationContext; +import com.massivecraft.core.lib.gson2.JsonSerializer; + +public class InventoryTypeAdapter implements JsonDeserializer, JsonSerializer +{ + private static Logger logger = Logger.getLogger(InventoryTypeAdapter.class.getName()); + private static final String SIZE = "size"; + private static final String TYPE = "type"; + private static final String AMOUNT = "amount"; + private static final String DAMAGE = "damage"; + private static final String ENCHANTMENTS = "enchantments"; + + @Override + public Inventory deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException + { + try + { + Collection itemStacks = new ArrayList(); + + JsonObject jsonInventory = json.getAsJsonObject(); + int size = jsonInventory.get(SIZE).getAsInt(); + + for (int i = 0; i < size; i++) + { + // Fetch the jsonItemStack or mark it as empty and continue + String stackIdx = String.valueOf(i); + if ( ! jsonInventory.has(stackIdx)) + { + itemStacks.add(null); + continue; + } + JsonObject jsonItemStack = jsonInventory.getAsJsonObject(stackIdx); + + // Populate values + int type = jsonItemStack.get(TYPE).getAsInt(); + int amount = 1; + short damage = 0; + + if (jsonItemStack.has(AMOUNT)) + { + amount = jsonItemStack.get(AMOUNT).getAsInt(); + } + + if (jsonItemStack.has(DAMAGE)) + { + damage = jsonItemStack.get(DAMAGE).getAsShort(); + } + + // Create Non enchanted stack + ItemStack stack = new ItemStack(type, amount, damage); + + // Add enchantments if there are any + if (jsonItemStack.has(ENCHANTMENTS)) + { + JsonObject jsonEnchantments = jsonItemStack.get(ENCHANTMENTS).getAsJsonObject(); + for (Entry enchantmentEntry: jsonEnchantments.entrySet()) + { + int enchantmentId = Integer.valueOf(enchantmentEntry.getKey()); + Integer enchantmentLevel = Integer.valueOf(enchantmentEntry.getValue().getAsString()); + stack.addEnchantment(Enchantment.getById(enchantmentId), enchantmentLevel); + } + } + itemStacks.add(stack); + } + + return SpoutManager.getInventoryBuilder().construct(itemStacks, ""); + } + catch (Exception ex) + { + ex.printStackTrace(); + logger.warning("Error encountered while deserializing an inventory."); + return null; + } + } + + @Override + public JsonElement serialize(Inventory src, Type typeOfSrc, JsonSerializationContext context) + { + try + { + JsonObject jsonInventory = new JsonObject(); + ItemStack[] itemStacks = src.getContents(); + jsonInventory.add(SIZE, new JsonPrimitive(itemStacks.length)); + + for (int i = 0; i < itemStacks.length; i++) + { + ItemStack itemStack = itemStacks[i]; + if (itemStack == null) continue; + if (itemStack.getTypeId() == 0) continue; + if (itemStack.getAmount() == 0) continue; + JsonObject jsonItemStack = new JsonObject(); + + jsonItemStack.addProperty(TYPE, itemStack.getTypeId()); + if (itemStack.getAmount() != 1) + { + jsonItemStack.addProperty(AMOUNT, itemStack.getAmount()); + } + if (itemStack.getDurability() != 0) // Durability is a weird name since it is the amount of damage. + { + jsonItemStack.addProperty(DAMAGE, itemStack.getDurability()); + } + if (itemStack.getEnchantments().size() > 0) + { + JsonObject jsonEnchantments = new JsonObject(); + for (Entry entry : itemStack.getEnchantments().entrySet()) + { + jsonEnchantments.addProperty(String.valueOf(entry.getKey().getId()), entry.getValue()); + } + jsonItemStack.add(ENCHANTMENTS, jsonEnchantments); + } + jsonInventory.add(String.valueOf(i), jsonItemStack); + } + return jsonInventory; + } + catch (Exception ex) + { + ex.printStackTrace(); + logger.warning("Error encountered while serializing an inventory."); + return null; + } + } +} \ No newline at end of file diff --git a/src/com/massivecraft/core/plugin/MCore.java b/src/com/massivecraft/core/plugin/MCore.java old mode 100755 new mode 100644 index 073ab270..6d333bf3 --- a/src/com/massivecraft/core/plugin/MCore.java +++ b/src/com/massivecraft/core/plugin/MCore.java @@ -10,6 +10,7 @@ import com.massivecraft.core.persist.PersistRealm; import com.massivecraft.core.plugin.listener.PluginPlayerListener; import com.massivecraft.core.plugin.listener.PluginServerListener; import com.massivecraft.core.plugin.listener.PluginServerListenerMonitor; +import com.massivecraft.core.text.TextUtil; public class MCore extends JavaPlugin { @@ -18,13 +19,14 @@ public class MCore extends JavaPlugin PluginPlayerListener playerListener; public static MCore p; - public static PersistRealm persist; + //public static PersistRealm persist; + public static TextUtil text = new TextUtil(); public MCore() { p = this; Persist.createRealm(this); - persist = Persist.getRealm(this); + //persist = Persist.getRealm(this); this.serverListener = new PluginServerListener(this); this.serverListenerMonitor = new PluginServerListenerMonitor(this); this.playerListener = new PluginPlayerListener(this); diff --git a/src/com/massivecraft/core/plugin/listener/PluginPlayerListener.java b/src/com/massivecraft/core/plugin/listener/PluginPlayerListener.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/plugin/listener/PluginServerListener.java b/src/com/massivecraft/core/plugin/listener/PluginServerListener.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/plugin/listener/PluginServerListenerMonitor.java b/src/com/massivecraft/core/plugin/listener/PluginServerListenerMonitor.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/text/TextDesign.java b/src/com/massivecraft/core/text/TextDesign.java old mode 100755 new mode 100644 index 674b4903..fc16e6a7 --- a/src/com/massivecraft/core/text/TextDesign.java +++ b/src/com/massivecraft/core/text/TextDesign.java @@ -15,25 +15,6 @@ public class TextDesign } - // -------------------------------------------- // - // TITLE DESIGN - // -------------------------------------------- // - private String titleLeftInner; - public String getTitleLeftInner() { return this.titleLeftInner; } - public void setTitleLeftInner(String val) { this.titleLeftInner = val; } - - private String titleLeftOuter; - public String getTitleLeftOuter() { return this.titleLeftOuter; } - public void setTitleLeftOuter(String val) { this.titleLeftOuter = val; } - - private String titleRightInner; - public String getTitleRightInner() { return this.titleRightInner; } - public void setTitleRightInner(String val) { this.titleRightInner = val; } - - private String titleRightOuter; - public String getTitleRightOuter() { return this.titleRightOuter; } - public void setTitleRightOuter(String val) { this.titleRightOuter = val; } - // -------------------------------------------- // // COLOR THEME // -------------------------------------------- // @@ -89,31 +70,31 @@ public class TextDesign { this.tag2color = new HashMap(); } - this.tag2color.put("", this.getColorLogo().toString()); - this.tag2color.put("", this.getColorLogo().toString()); + this.tag2color.put("l", this.getColorLogo().toString()); + this.tag2color.put("logo", this.getColorLogo().toString()); - this.tag2color.put("", this.getColorArt().toString()); - this.tag2color.put("", this.getColorArt().toString()); + this.tag2color.put("a", this.getColorArt().toString()); + this.tag2color.put("art", this.getColorArt().toString()); - this.tag2color.put("", this.getColorNotice().toString()); - this.tag2color.put("", this.getColorNotice().toString()); + this.tag2color.put("n", this.getColorNotice().toString()); + this.tag2color.put("notice", this.getColorNotice().toString()); - this.tag2color.put("", this.getColorInfo().toString()); - this.tag2color.put("", this.getColorInfo().toString()); + this.tag2color.put("i", this.getColorInfo().toString()); + this.tag2color.put("info", this.getColorInfo().toString()); - this.tag2color.put("", this.getColorGood().toString()); - this.tag2color.put("", this.getColorGood().toString()); + this.tag2color.put("g", this.getColorGood().toString()); + this.tag2color.put("good", this.getColorGood().toString()); - this.tag2color.put("", this.getColorBad().toString()); - this.tag2color.put("", this.getColorBad().toString()); + this.tag2color.put("b", this.getColorBad().toString()); + this.tag2color.put("bad", this.getColorBad().toString()); - this.tag2color.put("", this.getColorHighlight().toString()); - this.tag2color.put("", this.getColorHighlight().toString()); + this.tag2color.put("h", this.getColorHighlight().toString()); + this.tag2color.put("highlight", this.getColorHighlight().toString()); - this.tag2color.put("", this.getColorCommand().toString()); - this.tag2color.put("", this.getColorCommand().toString()); + this.tag2color.put("c", this.getColorCommand().toString()); + this.tag2color.put("command", this.getColorCommand().toString()); - this.tag2color.put("

", this.getColorParameter().toString()); - this.tag2color.put("", this.getColorParameter().toString()); + this.tag2color.put("p", this.getColorParameter().toString()); + this.tag2color.put("parameter", this.getColorParameter().toString()); } } diff --git a/src/com/massivecraft/core/text/TextUtil.java b/src/com/massivecraft/core/text/TextUtil.java old mode 100755 new mode 100644 index 28bbcf2a..7ca8a04d --- a/src/com/massivecraft/core/text/TextUtil.java +++ b/src/com/massivecraft/core/text/TextUtil.java @@ -9,23 +9,39 @@ import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.craftbukkit.TextWrapper; -import com.massivecraft.core.plugin.MCore; - public class TextUtil { + // Global Default Design TODO: Assign it somehow! + private static TextDesign defaultDesign = new TextDesign(); + public static TextDesign getDefaultDesign() { return defaultDesign; } + public static void setDefaultDesign(TextDesign val) { defaultDesign = val; } + + // Local Desgin Choice private TextDesign design = null; public TextDesign getDesign() { if (design != null) return design; - return MCore.persist.getManager(TextDesign.class).get("default"); - // TODO: The default should not have the name default. - // The default is set somewhere... as a static field?... in the MCore plugin??? + return getDefaultDesign(); } public void setDesign(TextDesign design) { this.design = design; } + // -------------------------------------------- // + // CONSTRUCTORS + // -------------------------------------------- // + + public TextUtil() + { + + } + + public TextUtil(TextDesign design) + { + this.design = design; + } + // -------------------------------------------- // // Top-level parsing functions. // -------------------------------------------- // @@ -44,13 +60,8 @@ public class TextUtil // Tag parsing // -------------------------------------------- // - public String parseTags(String str) - { - return replaceTags(str, this.getDesign().getTags()); - } - public static final transient Pattern patternTag = Pattern.compile("<([a-zA-Z0-9_]*)>"); - public static String replaceTags(String str, Map tags) + public String replaceTags(String str, Map tags) { StringBuffer ret = new StringBuffer(); Matcher matcher = patternTag.matcher(str); @@ -71,11 +82,16 @@ public class TextUtil return ret.toString(); } + public String parseTags(String str) + { + return replaceTags(str, this.getDesign().getTags()); + } + // -------------------------------------------- // // Color parsing // -------------------------------------------- // - public static String parseColor(String string) + public String parseColor(String string) { string = parseColorAmp(string); string = parseColorAcc(string); @@ -83,7 +99,7 @@ public class TextUtil return string; } - public static String parseColorAmp(String string) + public String parseColorAmp(String string) { string = string.replaceAll("(ยง([a-z0-9]))", "\u00A7$2"); string = string.replaceAll("(&([a-z0-9]))", "\u00A7$2"); @@ -91,7 +107,7 @@ public class TextUtil return string; } - public static String parseColorAcc(String string) + public String parseColorAcc(String string) { return string.replace("`e", "") .replace("`r", ChatColor.RED.toString()) .replace("`R", ChatColor.DARK_RED.toString()) @@ -104,7 +120,7 @@ public class TextUtil .replace("`S", ChatColor.DARK_GRAY.toString()) .replace("`w", ChatColor.WHITE.toString()); } - public static String parseColorTags(String string) + public String parseColorTags(String string) { return string.replace("", "") .replace("", "\u00A70") @@ -129,18 +145,18 @@ public class TextUtil // Standard utils like UCFirst, implode and repeat. // -------------------------------------------- // - public static String upperCaseFirst(String string) + public String upperCaseFirst(String string) { return string.substring(0, 1).toUpperCase()+string.substring(1); } - public static String repeat(String s, int times) + public String repeat(String s, int times) { if (times <= 0) return ""; else return s + repeat(s, times-1); } - public static String implode(List list, String glue) + public String implode(List list, String glue) { StringBuilder ret = new StringBuilder(); for (int i=0; i list, String comma, String and) + public String implodeCommaAnd(List list, String comma, String and) { if (list.size() == 0) return ""; if (list.size() == 1) return list.get(0); @@ -167,21 +183,27 @@ public class TextUtil return implode(list, comma); } - public static String implodeCommaAnd(List list) + + public String implodeCommaAnd(List list, String color) { - return implodeCommaAnd(list, ", ", " and "); + return implodeCommaAnd(list, color+", ", color+" and "); + } + + public String implodeCommaAnd(List list) + { + return implodeCommaAnd(list, ""); } // -------------------------------------------- // // Material name tools // -------------------------------------------- // - public static String getMaterialName(Material material) + public String getMaterialName(Material material) { return material.toString().replace('_', ' ').toLowerCase(); } - public static String getMaterialName(int materialId) + public String getMaterialName(int materialId) { return getMaterialName(Material.getMaterial(materialId)); } @@ -190,20 +212,20 @@ public class TextUtil // Paging and chrome-tools like titleize // -------------------------------------------- // - private final static String titleizeLine = repeat("_", 52); - private final static int titleizeBalance = -1; + private final String titleizeLine = repeat("_", 52); + private final int titleizeBalance = -1; public String titleize(String str) { - String center = ".[ "+ parseTags("") + str + parseTags("")+ " ]."; + String center = ".[ "+ this.getDesign().getColorLogo() + str + this.getDesign().getColorArt() + " ]."; int centerlen = ChatColor.stripColor(center).length(); int pivot = titleizeLine.length() / 2; int eatLeft = (centerlen / 2) - titleizeBalance; int eatRight = (centerlen - eatLeft) + titleizeBalance; if (eatLeft < pivot) - return parseTags("")+titleizeLine.substring(0, pivot - eatLeft) + center + titleizeLine.substring(pivot + eatRight); + return this.getDesign().getColorArt()+titleizeLine.substring(0, pivot - eatLeft) + center + titleizeLine.substring(pivot + eatRight); else - return parseTags("")+center; + return this.getDesign().getColorArt()+center; } public ArrayList getPage(List lines, int pageHumanBased, String title) @@ -268,7 +290,7 @@ public class TextUtil unitMillis.put("seconds", millisPerSecond); } - public static String getTimeDeltaDescriptionRelNow(long millis) + public String getTimeDeltaDescriptionRelNow(long millis) { String ret = ""; @@ -306,7 +328,7 @@ public class TextUtil // String comparison // -------------------------------------------- // - public static String getBestCIStart(Collection candidates, String start) + public String getBestCIStart(Collection candidates, String start) { String ret = null; int best = 0; @@ -336,7 +358,7 @@ public class TextUtil // -------------------------------------------- // // Wrapping the Craftbukkit TextWrapper // -------------------------------------------- // - public static ArrayList wrapText(final String text) + public ArrayList wrap(final String text) { return new ArrayList(Arrays.asList(TextWrapper.wrapText(text))); } diff --git a/src/com/massivecraft/core/util/ClassLoadHack.java b/src/com/massivecraft/core/util/ClassLoadHack.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/util/DiscUtil.java b/src/com/massivecraft/core/util/DiscUtil.java new file mode 100644 index 00000000..710a1abc --- /dev/null +++ b/src/com/massivecraft/core/util/DiscUtil.java @@ -0,0 +1,78 @@ +package com.massivecraft.core.util; + +import java.io.*; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; + +public class DiscUtil +{ + public static void write(File file, String content) throws IOException + { + BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, false), "UTF8")); + out.write(content); + out.close(); + } + + public static String read(File file) throws IOException + { + BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); + String ret = new String(new byte[0], "UTF-8"); + + String line; + while ((line = in.readLine()) != null) + { + ret += line; + } + + in.close(); + return ret; + } + + public static boolean writeCatch(File file, String content) + { + try + { + write(file, content); + return true; + } + catch (Exception e) + { + return false; + } + } + + public static String readCatch(File file) + { + try + { + return read(file); + } + catch (IOException e) + { + return null; + } + } + + public static boolean downloadUrl(String urlstring, File file) + { + try + { + URL url = new URL(urlstring); + ReadableByteChannel rbc = Channels.newChannel(url.openStream()); + FileOutputStream fos = new FileOutputStream(file); + fos.getChannel().transferFrom(rbc, 0, 1 << 24); + return true; + } + catch (Exception e) + { + e.printStackTrace(); + return false; + } + } + + public static boolean downloadUrl(String urlstring, String filename) + { + return downloadUrl(urlstring, new File(filename)); + } +} diff --git a/src/com/massivecraft/core/util/PermUtil.java b/src/com/massivecraft/core/util/PermUtil.java old mode 100755 new mode 100644 diff --git a/src/com/massivecraft/core/util/SmokeUtil.java b/src/com/massivecraft/core/util/SmokeUtil.java old mode 100755 new mode 100644