mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
* Fix Skin Caching Changes: * Instead of caching a skin based upon the player we cached it based upon the textureURL. This means multiple players with the same skin will benefit from the cache and more importantly will mean a player changing their skin will not get a false cache hit. * This should fix all issues with SkinRestorer and will now correctly show the skin both to the player themselves and to other players Closes #518 * Remove duplicated code * Minimize playerlist updates Changes: * All async skin stuff will now just update skins and not be involved with sending the session to the player. This eliminates issues where the player list changes whilst an async task is occuring plus it means no invisible players while retrieving skin. * Fix bug when retrieving cached skin * When sending PlayerList packets ensure the skins have appropriate skinIds so the Bedrock client will cache hit/miss as needed * Make sure to add and remove player when setting skin if they do not belong on the playerlist * Make use of AuthData UUID when removing the player * Revert removal of checking if entity is valid when initialized This section is supposed to send all spawned entities in the java world to a player only after they've initialized. By removing this check it would also be sending entities that exist but are not spawned. * Optimizations Changes: * Check for duplicate requests based on textureURL instead of player ID * Don't use the PlayerSkinPacket. It duplicates the data sent in the PlayerListPacket and without it the players still get skin updates. * Support caching of skins to disk based on configuration variable If a skin is downloaded it will be saved to `cache/skins` using a base64 encoded filename of the textureUrl, if allowed by setting a non 0 value for the configuration variable `cache-skins` When reading a skin we try load it from a cache file first before trying to download it. We don't yet expire them but do update their last modification so we know which ones have been accessed. * Update `config.yml` with cache-skins directive, defaulting to disabled * Merge Fixes * Cache all images instead of just skins Changes: * Move the image caching from skins to where images may get downloaded so this also covers capes and anything else that uses the same method of image retrieval * Updated config value from `cache-skins` to `cache-images` * Updated cache location from `cache/skins` to `cache/images` * Images are stored in png format with a uuid. This may make debugging easier as they can be directly opened. * Implement cached image expiry If `cache-images` is set to a value greater than 0 then a scheduled task will occur once a day that will remove images with a modification date older than the value in days. * Force skin changes as trusted * Resolve PR queries * Fix signed int causing issues calculating expiry time for images * Reset Defaults to 0 and implement Google Timed Eviction cache for Images * Add memory cache for Capes Co-authored-by: Brendan Grieve <brendan.grieve@zepli.com.au> Co-authored-by: bundabrg <bundabrg@grieve.com.au>
244 lines
4.5 KiB
Text
244 lines
4.5 KiB
Text
|
|
# Created by https://www.gitignore.io/api/git,java,maven,eclipse,netbeans,jetbrains+all,visualstudiocode
|
|
# Edit at https://www.gitignore.io/gitignore?templates=git,java,maven,eclipse,netbeans,jetbrains+all,visualstudiocode
|
|
|
|
### Eclipse ###
|
|
.metadata
|
|
bin/
|
|
tmp/
|
|
*.tmp
|
|
*.bak
|
|
*.swp
|
|
*~.nib
|
|
local.properties
|
|
.settings/
|
|
.loadpath
|
|
.recommenders
|
|
|
|
# External tool builders
|
|
.externalToolBuilders/
|
|
|
|
# Locally stored "Eclipse launch configurations"
|
|
*.launch
|
|
|
|
# PyDev specific (Python IDE for Eclipse)
|
|
*.pydevproject
|
|
|
|
# CDT-specific (C/C++ Development Tooling)
|
|
.cproject
|
|
|
|
# CDT- autotools
|
|
.autotools
|
|
|
|
# Java annotation processor (APT)
|
|
.factorypath
|
|
|
|
# PDT-specific (PHP Development Tools)
|
|
.buildpath
|
|
|
|
# sbteclipse plugin
|
|
.target
|
|
|
|
# Tern plugin
|
|
.tern-project
|
|
|
|
# TeXlipse plugin
|
|
.texlipse
|
|
|
|
# STS (Spring Tool Suite)
|
|
.springBeans
|
|
|
|
# Code Recommenders
|
|
.recommenders/
|
|
|
|
# Annotation Processing
|
|
.apt_generated/
|
|
.apt_generated_test/
|
|
|
|
# Scala IDE specific (Scala & Java development for Eclipse)
|
|
.cache-main
|
|
.scala_dependencies
|
|
.worksheet
|
|
|
|
# Uncomment this line if you wish to ignore the project description file.
|
|
# Typically, this file would be tracked if it contains build/dependency configurations:
|
|
.project
|
|
|
|
### Eclipse Patch ###
|
|
# Spring Boot Tooling
|
|
.sts4-cache/
|
|
|
|
### Git ###
|
|
# Created by git for backups. To disable backups in Git:
|
|
# $ git config --global mergetool.keepBackup false
|
|
*.orig
|
|
|
|
# Created by git when using merge tools for conflicts
|
|
*.BACKUP.*
|
|
*.BASE.*
|
|
*.LOCAL.*
|
|
*.REMOTE.*
|
|
*_BACKUP_*.txt
|
|
*_BASE_*.txt
|
|
*_LOCAL_*.txt
|
|
*_REMOTE_*.txt
|
|
|
|
### Java ###
|
|
# Compiled class file
|
|
*.class
|
|
|
|
# Log file
|
|
*.log
|
|
|
|
# BlueJ files
|
|
*.ctxt
|
|
|
|
# Mobile Tools for Java (J2ME)
|
|
.mtj.tmp/
|
|
|
|
# Package Files #
|
|
*.jar
|
|
*.war
|
|
*.nar
|
|
*.ear
|
|
*.zip
|
|
*.tar.gz
|
|
*.rar
|
|
|
|
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
|
hs_err_pid*
|
|
|
|
### JetBrains+all ###
|
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
|
|
|
# User-specific stuff
|
|
.idea/**/workspace.xml
|
|
.idea/**/tasks.xml
|
|
.idea/**/usage.statistics.xml
|
|
.idea/**/dictionaries
|
|
.idea/**/shelf
|
|
|
|
# Generated files
|
|
.idea/**/contentModel.xml
|
|
|
|
# Sensitive or high-churn files
|
|
.idea/**/dataSources/
|
|
.idea/**/dataSources.ids
|
|
.idea/**/dataSources.local.xml
|
|
.idea/**/sqlDataSources.xml
|
|
.idea/**/dynamic.xml
|
|
.idea/**/uiDesigner.xml
|
|
.idea/**/dbnavigator.xml
|
|
|
|
# Gradle
|
|
.idea/**/gradle.xml
|
|
.idea/**/libraries
|
|
|
|
# Gradle and Maven with auto-import
|
|
# When using Gradle or Maven with auto-import, you should exclude module files,
|
|
# since they will be recreated, and may cause churn. Uncomment if using
|
|
# auto-import.
|
|
# .idea/artifacts
|
|
# .idea/compiler.xml
|
|
# .idea/jarRepositories.xml
|
|
# .idea/modules.xml
|
|
# .idea/*.iml
|
|
# .idea/modules
|
|
# *.iml
|
|
# *.ipr
|
|
|
|
# CMake
|
|
cmake-build-*/
|
|
|
|
# Mongo Explorer plugin
|
|
.idea/**/mongoSettings.xml
|
|
|
|
# File-based project format
|
|
*.iws
|
|
|
|
# IntelliJ
|
|
out/
|
|
|
|
# mpeltonen/sbt-idea plugin
|
|
.idea_modules/
|
|
|
|
# JIRA plugin
|
|
atlassian-ide-plugin.xml
|
|
|
|
# Cursive Clojure plugin
|
|
.idea/replstate.xml
|
|
|
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
|
com_crashlytics_export_strings.xml
|
|
crashlytics.properties
|
|
crashlytics-build.properties
|
|
fabric.properties
|
|
|
|
# Editor-based Rest Client
|
|
.idea/httpRequests
|
|
|
|
# Android studio 3.1+ serialized cache file
|
|
.idea/caches/build_file_checksums.ser
|
|
|
|
### JetBrains+all Patch ###
|
|
# Ignores the whole .idea folder and all .iml files
|
|
# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
|
|
|
|
.idea/
|
|
|
|
# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
|
|
|
|
*.iml
|
|
modules.xml
|
|
.idea/misc.xml
|
|
*.ipr
|
|
|
|
# Sonarlint plugin
|
|
.idea/sonarlint
|
|
|
|
### Maven ###
|
|
target/
|
|
pom.xml.tag
|
|
pom.xml.releaseBackup
|
|
pom.xml.versionsBackup
|
|
pom.xml.next
|
|
release.properties
|
|
dependency-reduced-pom.xml
|
|
buildNumber.properties
|
|
.mvn/timing.properties
|
|
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
|
|
.mvn/wrapper/maven-wrapper.jar
|
|
|
|
### NetBeans ###
|
|
**/nbproject/private/
|
|
**/nbproject/Makefile-*.mk
|
|
**/nbproject/Package-*.bash
|
|
build/
|
|
nbbuild/
|
|
dist/
|
|
nbdist/
|
|
.nb-gradle/
|
|
|
|
### VisualStudioCode ###
|
|
# Note: Manually edited to remove settings files
|
|
.vscode/*
|
|
# !.vscode/settings.json
|
|
# !.vscode/tasks.json
|
|
# !.vscode/launch.json
|
|
# !.vscode/extensions.json
|
|
# *.code-workspace
|
|
|
|
### VisualStudioCode Patch ###
|
|
# Ignore all local history of files
|
|
.history
|
|
|
|
# End of https://www.gitignore.io/api/git,java,maven,eclipse,netbeans,jetbrains+all,visualstudiocode
|
|
|
|
### Geyser ###
|
|
run/
|
|
config.yml
|
|
logs/
|
|
public-key.pem
|
|
locales/
|
|
cache/ |