Plugin Besoins d'aides - Plugin gestion de skin - évolution 1.9 à 1.15.1

passepartout007

Nouveau
26 Septembre 2020
2
1
0
1
27
Boujour à tous,
Ses lignes de code mon en Grande partie fournie par " la kappacité" que je remercie grandement.

Mes données d'entrer provienne du site https://mineskin.org/.
Voir la pièce jointe 90584

Avec Texture Data = Value et Texture Signature = Signature.

J'ai donc créer une énumération pour plusieurs skin différent voici le code :
Code:
package fr.passepartout007.gestionjoueur.gestionSkin;

public enum Skins {

    SACRIM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTEzOTM5NjY0MCwKICAicHJvZmlsZUlkIiA6ICJkMGI4MjE1OThmMTE0NzI1ODBmNmNiZTliOGUxYmU3MCIsCiAgInByb2ZpbGVOYW1lIiA6ICJqYmFydHl5IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzU1MjhhMzg5MzhhMzU2NTQ3Nzc2MWM4MTNmZGNmMzE0YjRiMTU4ZWEyYWQxZDNhNTRjMTdkNDliZTVjYTExZjUiCiAgICB9CiAgfQp9","Y6GWDeH6m6qPjN+VJJTrWfY13uSVw5CSFLHQGazL43Vrpkbw9Xpbfo6G7TqnEdPyVYnk0UsFsO3JGjJ0UUgI0aqIAR7l5oj2q5upEseMNpK82T4G6b1KnLt7jTUQXL3+Zt1XLfqIsTe9+LEdyakTQ3XgqSefndrIUHCJh6NMOKD6nCQU3Y817Gxcir2RL/Y1QnKdMHyv+JL6CZnNNyls/RskdarYBowvKumUJ29mvWE9Fc9S9Yj7u5yex9IehBbdVqVi5bNsaFE6NyPXNwqAWksqrtVQIffH+zAkBJ4XNBHVb0sTSj9cNUBzcC8dOruHGIvgsWSLPSjrE8/KDxbK3Di1lZok8JvfjD0FntpmxpTiIvP3MqNS2xRvfYKMT7sIu4yfzAKp8gItM/noOe5Ney7Wl2YZHeifD5LgggPlku+tZka0AIdt05X6ii8bAA1bQ/lwgsOOmKbmo6QJJCp4E82EdKaIrNzGEeysMAx9H9vemS0GbtfHl+vmOKLcosyswxrizjV9kLDHUQ/qBwNXhmQ8GgrTzt+kZC8D7UTih+Z9ExBPVbwpNpD/UqP58YM9WYiucLb3OlZqAMmsNqnJaFxhyvIzk6wMaj2AVpXMliUnT1LJ9psR12Fe2LRFb1AfkSUI7P6B1KV4odh8N5JW1E2FDRGq/EoS1PmGMrVrkjs="),
    ENUM("eyJ0aW1lc3RhbXAiOjE1ODU4NjEyNjk1MTEsInByb2ZpbGVJZCI6IjkxOGEwMjk1NTlkZDRjZTZiMTZmN2E1ZDUzZWZiNDEyIiwicHJvZmlsZU5hbWUiOiJCZWV2ZWxvcGVyIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82MzMxYTUxM2IyMzE3NDJlZGYxMTk0NTcxYWY5NTRjNmMxYjAxNWZhOTdhYzI4OWM5NjA2Y2JkYmE0ZGRhMTk1In19fQ==","sYW2ljRA8AkJvXjd6+vi6ffs4FGKy3tvE2yBagxKOhV/38QVoceJi85KIFj0nRPuO0k8ru0Ef0T1qiLocQ542U7W0t8I2xKZX/MtDYU/a1XtE8TpIfZMw2G0J6ZPWo4g2Pdg7s4R4UJ5KKEu61hCurQZ//LOGHlWwb5H3SrrsJn5503EKnPKwg/rSieyFMaROVfdYR8kwwu2mbMaD1utBxybFH4tiUX1h/ycGXg1mq55UmbJ16ViE/tR9Om1jApZWST2QlKDLu3kiNoKDUDJ9LEmy+qiqfKbVqVgdbcFrvP8neIP7IZjVSxtoHxh96spal0FJmNFh+HzIkBTarGbDFydznRBmxUvsiuHGapPNBHyVhanGsOo5qYXwGiSefoVuj5axCi6vbz4v5vcV7xEWfb+PYI6TAT3VJpozysKRU1Q7TlY45fYeQsLo9aLkrqA06DRsABBAUnoFgrHNEaWrjiH4DNehf3lrlRP0WFpbIKfteZuqitEAa2/JMktAuGfAnhN7GNmAoB+okjGS+n3Zy1p2G+W/G0DhzrpHPZ0f8MEgUwUey84W0E5B/v2tuwSwl13nMREtZO20Q+kJ7tscXGGC/u3i85+FgJ/iYYbu16oX1Na4PeeEoLsWyP4ORPWKk3d1cE2pFS6JNiTLKAP+C0K6v/MN5W2KLlUK2S5Gg4="),
    ELIOM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NjUxMzQ4NiwKICAicHJvZmlsZUlkIiA6ICIxNzhmMTJkYWMzNTQ0ZjRhYjExNzkyZDc1MDkzY2JmYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJzaWxlbnRkZXRydWN0aW9uIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzI4NmNiNDdhNDQ0NjUyZmE0OWYxMjJkZGQwODg2M2VhYWMyOWQ0OGE4Y2NiZmYzMjAzYjlkZTQzMDA4YmI4ZjQiCiAgICB9CiAgfQp9","aYZJ8efX6fsRZbPKLmOU5gifYcUg6SJK4Kuqpjq1lsHFE6fRBMYhYZK6AgRhsThfbsIY3q9+ubemaH+mtPqrNXLN4TQI16IF2PMpgNeGRMg9M3OjSjiBtndJZ/36AhffX00Roxc4hvQ3YzCkSrE+1E1T2lSnKgnIiFqBEy5BJPqefL1K4dtbUoCnyisJbutchfWF0rpTx/oFvffrL1NIZNjub6ZPd/pbGKVAutj+NPeNSdOetpOVO/yFeuDBKJOeM1gp3ztUhCZc3vAq3j2f9fgLALdscCXiHA9+SfBHrIk0KlEtfPqjYlowVv3np4KinWfTuUWEUmX5eNwVU9dlKdU7zMwUWNhSDYUeW6gLeeLDAubOTTfCJBPivVotEFF/+DnHq55HKgeJ56tnn0M7UH5JdDYq7G7MaE3nJEVM9AMBVO/sw8c0brtHvVBbkQA8egshh39wY8IsAuKSwNXGwhu9mKaArR2vQe3ilrnwWF960Qz7X4LubDoQOxjRJ7upe+r4sZJZiT5DPWVNGaFmERgXxatEFho2dnFJdGZCYKgrweE5K6X3qy+n916n2IwQNYYYdvA0HY4+7NL4JBP3MpViTDIjI4xLnLOhUi5FiJfJJOEiQQPluswzHGgQcMXbd4gJ4r3ynNmatTmMvpKVKbd0DX9x2Z3fPIE4QoUoLzk="),
    IOPM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NjYwMjc1NiwKICAicHJvZmlsZUlkIiA6ICIxZDUyMzNkMzg4NjI0YmFmYjAwZTMxNTBhN2FhM2E4OSIsCiAgInByb2ZpbGVOYW1lIiA6ICIwMDAwMDAwMDAwMDAwMDBKIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2ZlOTFmNWQwNjFiOTFkYjZiMjYxNTMxNWFjZDM4Mjg5NjRmYzQyNTI4NzcxZTg2NmQzN2FhODQzMjZjNWIwMjgiCiAgICB9CiAgfQp9","N91EDZoIQKwEk1Vef7cEbuKgjDqFr/eDtTssf6UNcPbcLq92cG/FV8/9XicFYvgQnWd2JxowEtKExsc7BQrESyhvLv6Jy6mawSQBgVl0lGJ91LYZtMGIZscBgF0zikgGpkiZLN+2AWltj38R0hrzbjalK2IqjauaeX0XTQ9f5Xiism6/AnqWgUEabi2jJXylFb6p8KuvwPUREEgqV8eY1a+0qbjNQzgxV4blKWQd56zoIEvI3vveDRPbxkQu6vX/X46gh7OMFg+tDaCT9rVSg1gePqhB5DtunZ6JHGdlYtWgkFeso/1cBVaJ/2ZY5xxpey28GqfusD0hq17QBYdbfS7oryOk88C18w4c7Xqn95kS2HgU71nKgpC/TkQDfqlFU1seegkp35hHnia0AM5mL458XUMVBPFxiju1us+dleqblk2xQPfXheqMYoMjjWkGQRI+9jUJUhgzLr6jLG0syPfNhWpwaV+cQJQIrtnn7kYeiXg0+bfLDP9hRfVkmx+20AEfxHl/o9xG2mxFhiSQkHQsRouIwvoRtvS5+DwgWsQauSXECIjWR+HtS+zUI47Tda2zRgHxh4iqfBFJy0uLyOLhK82q0Lp9VsakOgjpobPZe9M1tuStgTjTjmPjodAP4clwePkzSHXwM/HD0pw2dZK16n7c8LgNLD2QSu3YduE="),
    CRAM("eyJ0aW1lc3RhbXAiOjE1ODU4NjEyOTMxNDEsInByb2ZpbGVJZCI6ImIwZDRiMjhiYzFkNzQ4ODlhZjBlODY2MWNlZTk2YWFiIiwicHJvZmlsZU5hbWUiOiJNaW5lU2tpbl9vcmciLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzJkODc2YjBjOWExYjRlZDViZWRlZjkzYTgxYTcyZjM0ODY1ZGYxM2JiZDlmY2Q3OTkyYjcxMDljZjg4NmZhZDgifX19","wukJxOIoW77EoAlu3h6yZEqOAKvPbFvMpl4c1g0fEfRP8C0ZF0rDWvJLe/3fPRhgn0ZNQ9vKgpgabO6vRSX+9sT9JDIS/Ka9fxD2UqnCZ8ggB9mvtuppMtOxCZqlyYtaASOp5pa3EM57GPswY7OCLc1s1bWq214mdnkS8ijUuAnJiI9+/v+mDPKuDaQewGuEWkcGrr/uOrVYi64g1/j9NbwxiM9PbbQOqly8blfmRbkeAoWcKDA53LwjjjToweN1pr3HPhNOdew1U3JFndAxfJK8Pax2miGhxpr4EnSOtIQiP3uAox4dmrduygOZqa49h/+uEk5yAhVgNIIK8xfvXpY8FgW+BzKzgxFCFHMlI+vA4MJmthkqN7VYu9mykrQRRcr3FiC4xcKdngqPxzc+pZU7dIcUd8oAcjqqtNuMgJHc1XiwAvV/gVrQd3RG2ns3Muy07snjp+/6TntkRYb08LiG2oIQ7hyHGA2fN8msRBsZ34l7iNX06k3JeWjDp8lx6LtDJa4gR9oAyK4m4R8yj4R/x6Z/jnIuY79bqk6T0GIpLmxUzIKTjD5gUa6TjzeuGRRgMv2lLp+sQiTCQNA6Zy9L6zLeRwGZSoJHPzxjUl7kBJOgoiU5j42BZw0r0LGVW6mHYhmkkllJjytX/iMmxCdeSzbXmyrsO2tki/FnXtU="),
    PANDAM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NzQyOTM4MCwKICAicHJvZmlsZUlkIiA6ICI3NTE0NDQ4MTkxZTY0NTQ2OGM5NzM5YTZlMzk1N2JlYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGFua3NNb2phbmciLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWFlYjVmMWUwNjdkZGU4ZjJjOWMzMGZlY2Y1MWZhYjUzY2ZkZDBlZGUzMTQwZDBmY2QzODI3Yjk4YWIyNWE0ZiIKICAgIH0KICB9Cn0=","VkvwYLN8yvCbeN5tmdnAvzyjjL33jl5qHOA7mVu+5dcIdpt5ynfc9waGtUcGznh5LC+IpXVWPhxejBi47CeS1iGUU+LxGN65tptWmoCvMQygChahcF2HRVzkKf6xWQamALUdvKL4KhNkUSlEpyUbHgn09NGlDnrEzVlKhhZibQ+TpQSvP5O0a+eawAnuNeg9wWgKVZMVm0M/E3oJzGgQncLi7dRin6N1LRJP8KYGJMLZLHgIA0gOobp807kkfsi5PpNW7OW/fKT6O1a+qaT3Cax4rjN3LCVQLyuF2v08Mgpb3EmG0kf3PJWu2a6ob30DxVYrUVXvOY67VZhnglQZFPxGMNVUr77zDqag9cES9kuzG/KNISrqq09ec2vOEckjLKK6Z+ADj/JuWvR7m4gYxWyh5oKeSyrQ/vtto+8xRlnTaORIPigpzX+a1Eyjktz39OMWDajVEQeeVHieGf6VSSbQlHBnh0/XvgtIk3i2z6MK3uLfsXCg5Yo+pJM/6jMGPoIzkXRI1ckSQZbOs7vDBkMYbZmbkArzR+O8Qc83n5ZqE+AbOc2KqIkHhtQFvZM1wws8xXXNa7MOjC9VqNDBXC2U3/BSWxsxCNqPFL4F0X4uBYjXlcLTDYSgF/di5mOkv2CqoZTam9B4x7Qpfe9G1hZt5PzIbbN8I0bs+J1oozI="),
    SRAMF("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NjM3NzM1NiwKICAicHJvZmlsZUlkIiA6ICI0ZWQ4MjMzNzFhMmU0YmI3YTVlYWJmY2ZmZGE4NDk1NyIsCiAgInByb2ZpbGVOYW1lIiA6ICJGaXJlYnlyZDg4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzgzNDZjNWYyZWRjYmUzNDFiNThkZTRhZDIyOGI4ZTczYjFhNjE1OWNmYjBkNTZhMjg0MDVlOWUyYWFhNTUxYmEiCiAgICB9CiAgfQp9","jOTnfN224j8z+tGE+IiNZVjj26R9pKfBh0skOMpm8vWzaztF0I6N/UOP8YvsepN6yUAg9mlQCvGBSyODYY8NZ86YFWxyidAfxJVeH/Qh0MFF4K9iXFKbOOC8oCq5EKJDQYp3B2jcnCzznOvqc4R+pUaCrNqmTZH7mJa3y5+mxfNVktHLbVJUyIFgGw78n9uaNE79+v4UMz/B67N+Pt5nuXE86MwgjAqRaakeHO6iXHXPXB1AO9qSuqXoFsllfp86aGxLDz8JG+c0LlGkG4xRmZOJWSdswQktLX/HZJg/rrDrXIH8a4aD2pDbFhiZXGh9ypwfUwRrPKlYW6X811wofnL1OxntMlBYBwJDHbCsa4rauVybKT9z7Jtyrekc7m3bKqM+dJa9n7A3mFkmk17cQsabFr4WC1zK/x45e5yUUS7Doc0oOMOwZLBmHc65u8AxVUSsqnYoMAGyrwtPdAnn3eepx5ulJdPKsOze3YOK5A4CT98gpJT9ww7EopntZu1aMQ7NDiLLZDi1UmE5hcwe4YeEz6AGrMQDjiSuHeZlIDLaT9eQ3rIezl/VEwLJXvLU8tpQ23R+UcLWGpyKWD1Jp/irfMH2D35EwajoR0ZrmmlFVgV483n8Rv1dUZD9w3/xpB2lDxWoNVQiFlJu32kcYBkmWr3CJoE8g1m0it2appc="),
    HUPPERM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NjY4NTEzNiwKICAicHJvZmlsZUlkIiA6ICJjOGY3Y2M4Y2QxNjY0NTFlOTMxMjE5YmM5YTY3MDg5MSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUcmlTdGFyMTYxNiIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9mNmY0ZjI5YmJhODAwZmY3N2U4M2MwN2RhNWJjZDlkZWYxN2M5YjVkZTQwZDdhMjQ1MmM2ODVlOTM4NTdhZGE2IgogICAgfQogIH0KfQ==","UiGZWLexQ5hN/emJdZiHZSy4TIbyK6b9qEXsIvRGb3c11ZqOpyQrYv1ndPVOln6GeNw4x6BIWwgRblmzAwSO5lX6YMGah1riRq9YEtoFz7r6VzBlR9WDeSwNr48Aj7f0MDz9ZgrDWqI8Nh4C/mxBPhw05KTiIMAqt0Qm1IfaZA3VeV2+lSB/KbBRZQQ3Uf+yZ3u8e7bQwtmsaOnHbD1g7b3QlSKDgVFt8f/VY+118PuWUczW+tfnjUFOMaTXChutfQMr77G/ewvHrDpOWATqvwp+Si1QCZRy0YAe58IHQxBqEJ1jz33ngIJqSNM2ll/dRHXzeOrg3L5XhGa8P9mYTcvnvv0AemzmtjWITkuxVJUN97bG/wnUMO5tfj5/wf19YboIDzTmTbBe+F+eVTZtAgfFTBWrrNDMlZn+M+KeLV4YL3HZhUgE8UUF0eoLACmrxioqk5ZNDtyLuUPDrtPk+W2N+2QgEKn1WXboXadRWR+sJkFLdFvCCGJ6ogId6IMjOi//hJmk7iBXavwr4K+74GdGciAQ/EuZGRK99AE+YyxDUd2PAw0kkA/JYJoLoW7y/E8I8gy5HvYRdnL0mLkw6QnP8bl/B3HlMTeGvszbAfUC2TO+RAkmn4QlTOA+jGj5706SzFki+WADV8nF3XKe3OjI10A4Ds2QNQJXNlK7JWg="),
    XELORM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NjgwOTU0NSwKICAicHJvZmlsZUlkIiA6ICI0ZDcwNDg2ZjUwOTI0ZDMzODZiYmZjOWMxMmJhYjRhZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJzaXJGYWJpb3pzY2hlIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzg2OTVlNzFiYTM3MDdiNTJlYmUxZjExM2Q3YTRlMGI4Y2M1NDc2ZmNjODMzZDEwMmZjMTEzMGMxZGI0MTg2NjUiCiAgICB9CiAgfQp9","mpu9uNdlsShnfls8i6qhI+JHaIJE86XxjONaCWp6hT3iri7tyRoD6LVpyLfePUed6eWHPyYCJIRn0TJWpJtv9Aj7qni4imczLgtNyJHl2yA6mfC07Dv0CHJrYD8o93QshJ0Tos3vl7uLK2kXPZy9RKiC/PNw7uq22C1lJNnfc/9jtwnH2Jg9ARwcT76WRIjXVO7vu3ma63vUUn8+Un6c+PE4FKSLtXityU9Gs1MAoagCos3iXnMgRxBtOvPkywNfNxR0FsrKmMolCmqy1tTRwwpXl6A+XNehh6PumjXZu3VVnVF8w+cgcQyVY1NipiTmSUQyPJoxJtT7IcGEMXdZc7vJ29TLuuuwCaTjjXSOff9GoEVZVvv7bj071AS0Rzxk2Er+aBrQgoq5GVxVoeYKaVTnSCjMJwkHureGVEzHbvDk7FepZRzq33u1bYdcC+zRRLNoZjKNV8G54TjlgJZL1p8k4jYSQGJ5CG3H/7tFS8anOpIQEJB5+NkCAyXZvUw8Qw2uTiLWnjH/26tcFvmpfUrTFqQFaEr9IbIHxWhm78c2ePGyiERsfdkxn5DBUGNq99QwI9a90SfA49gWaISa4W/4KQ93Bp0IExUuqENWte8/v5LA7CX8sTYOPbpUZ/FhEFa8B2rGDg5rtfNWITi7xPkBSTVQX6UT1TtcIEvHM20="),
    IOPF("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0Njg4OTE3MCwKICAicHJvZmlsZUlkIiA6ICI2OTBkMDM2OGM2NTE0OGM5ODZjMzEwN2FjMmRjNjFlYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ5emZyXzciLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA4MTJiNmIzY2RiNTA3ZTUyZTJkNzUyYTYyMTYyNmFjNjA3N2NhYTBlMjUxNTM2ZTc3MmQxYzY5OWZhZTBmZCIKICAgIH0KICB9Cn0=","sd8KH9Ztnu/0vLNCROMhEvuod4XqgAg6eGoLBoGQ+TAL8vT1PHi/qJpiBPfniO7ex87jTNQRzInkey1W+roa1jtfcfEyCLyY+HMLeGsaWTZZDvKMZ9HjzUIxmgs+1URFgGAiUQwF3u2JEvWMvu7LP5iFMRI4ZAYDfv5PGcGMmFtXoj+6H0x/cvh3XoQiSqwnjOqadl3L+bCGd/SqNJwOhDTDQLbhG7foATQZS7D+JzxF9lxhxlpiEYWaGF13vpESnzhMexhDKeoQDQ5cKoIPWvBGaMYI/7ru7xFEiFGxM+gYS2X7sQppzYXKBzGu8QMtJjXA69b35zUQA3AxBw+GOomE+6NDiD05Amp+rayDbN++7iFzdskPcn1B4IUfr2fwn+dQkYfDwUsH5kpKF3+DB+wwoZjGPp3yXErnJm3ghhhm3l7udNYwOK+l3Uo9orwsdwyPNYqDJA2RgqEwN8maRDM4U0549L9rSw0USyYlX4+IAvtzGc3G5eo5q/4PlsxLAkHl9j+AQVmWl5PRK7vgfrqhN1mWlZ3kQicNt84gq6JQxiM74++ByMlreZLGCUCR1jP1ltEZ+5vbTdeijJebomVJ9fvTMHB1mWf675edDwjspRhqRhP1/068UOR5LJYBiMbApow3JpagkcAac5097zZTShO3gEez0xKJajWgcwk="),
    ROUBM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0Njk3MDQ5MiwKICAicHJvZmlsZUlkIiA6ICJmMjc0YzRkNjI1MDQ0ZTQxOGVmYmYwNmM3NWIyMDIxMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJIeXBpZ3NlbCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82N2YzZDljOGJlOGVkYTQ1ZjRiZjQwOGZiYmE5MjEyNWY1NzM3MDBkM2Y5YzVkNmU1MmExZjliMWMxNjNiMzA4IgogICAgfQogIH0KfQ==","TypzBuE0Q38y5vqD2L+EW9x3lEziBoDDj4fC3SfgNdobh7i8yDPZj22VJpuOCOzQcM8yg53RWVzsl8+8EaloTAtmEhio5LfATOyzvjDoa4Ge31zMQMVEDnRL8Q42h2GthszORBM/fEtXVM93hHqNw3JOsbc6+x9sR5FDD9dFJh/A7SRsZ40yizzRMYdQaOjf3OpJmWOj0X/nob1HFdm1ogPTVfs6p9nK3mzy2RYZt1p3bmX38JSVnKHK4nXZ62uBe/I4+NC8Ke1val5AFEzu82FnUZgP367V9fcWHiZt2EcVbe5vXfcZaF95yCZNsaQjEPfOq3jMG5kzlKqXwyUO7hUufOErrR9rXbizzxdSGnYOgrEwri5V7AN2vc2bvvDKdLXQZRg+cBHXVjAP6a942X6DsYYJnypdmnDPFkXnYIEuJNW6pCSiSoNyGbap73l4g19doOuvYGFQva259gjB0F/AKecIM3wrM725RPRC/yfGfo8PSKmIHiJ4TUAdQ9GZSVjUZ/+7aUV7I0eU7n4fcrrJAAJUMIUjv4o4hBrFkzCGECkLrLFgAUrLSsOD7ZSXCyNh4fYcj5Z4q0D+2nf7kOReUZrmvOi68o/S6FoIxnmr2W8GTccUrM55irmNscqihrDyF1BJ/V3OM0DNr3Kazc2ePtMcJ6TQUiH39/sk63g="),
    ECAM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NzA3NDc0NywKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YWFjZWYzZWRlOTY5NzZhZjI0ODYzM2MzYTljMDJlYmUxMmUwYTlkYjAzOTYzNzdiNjEyMTEyMTNhOGNiMjA2IgogICAgfQogIH0KfQ==","nfYer+rW/ETFM+38rAqcycwDcCUZeqz13dxFL5baizc51x9wLU7Qagv8SH7Of/Zpmtrhq9StafXEnHqzxNyPuVyuJdRMGmv9rmJg09KcKr+yvCCXDXEgxNaaPon3mYeCuEbq77WAhS0JQpSlfPtBcMrFfKJ7QVxqBnb5iWw0p5B9X1CWTVo2AEOVLvi7709JWM55Z70hwBFx1r2ohkQPuuaCUd04MqneJ+DuP+yjG28sCjZ0WyWt9UdbQGhlqdjMT5Q/hHuv5NYYCEZ/aKjgwULv0Ul1p4yL6QsHh+VzNJpTe6I/nswxqXNOLplVq4ds7ZkOkAGefgTA5B5W+ttRpbM44ekLmPrJgRfwuHYbhr2TGDn5HcC2d1QW66BxGNJm6wPHBtkb0LJgN+j59knA3LTkOnjNx1jZCKpFZGywtP/gIyTEjs3Kg69HMM2ZeNTq1WvBcjQa08zvSy5+J5KHhs7KWtbpf7PVVVRp1nDD9Yzlas3MSEWTLcNHjfzAYFzL28w/z+LvdBIEVJIwZnsg8rny/GqY9I15dz6vvVjTPWHtNg8jv9wTm84FwwBcMcdToSmvaExyJAGW2S1UoJTiNIMJQqhyAPJ5NFdSdMpHjYSiH2YTRn/F9dkGzwYmeGS1YIPqYRUXikEBk5+Jo+IVB9j9vfzqH+aicjuQIKFqqwo="),
    ZOBALM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NzE1MzI4NSwKICAicHJvZmlsZUlkIiA6ICI0OWIzODUyNDdhMWY0NTM3YjBmN2MwZTFmMTVjMTc2NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJiY2QyMDMzYzYzZWM0YmY4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2JlNmMwNTJmZDc5OWY5ZTcyYThlNmE0NDVlMzczMWI2NzhlN2E4YzAxZDZlZGJhYTIzMTNlZWMyMDlhMzVmZjUiCiAgICB9CiAgfQp9","aw+32eS1sL9d7abgRXAka+K5pmVXe+0pVP+9i7tBIAuZnj9PDxhoFdn1tL4OEY/scKN8G6W4xnafhq7nwP47i14UrgdgXeeGTHHAi4Net4fax9fhkC6aktL97C81dmO3y2oGwiO37cZhtb9GlRnXOWROnhIQk604g4i9ZDNY2Yr1cYkZeBIcoMshamVRyxryWZ07Z11HK2qSxH94rTn/ADqiMf2kiEf/ysCglkP8GHUoozQE0TNHQUDElJRVNAEQyVyB9G7TcYCs/4wGYqUk9InENecgRwzO7F69DqtJk3moj3Tz60WUvXDwtKtVAvOSb1M1MIIUmJESORKSAw5F5xXiUeLqupWIAB0Son/4qoWz2fSMTtbHjnNVn0UuAAiGcB3EIsjn4s/2gSvzFQo8VPN2mPq4Nd1PzXAE2GUblJhrh9lNCbvdfGlgbATyokHE7vxHdFGIp8D/FRInH21Lf9prNF/WKkFOlvm7MBoEaN7a9LvUd2AiWQQEeqlDzeQ/XBeHEWH2teP4ZVjCvVEKDbH91Ny8vCd1qGLfA8jckBP7qbCEykFXT8azLqMKENyE7MfgqTheDKdjOufeW2UrHOfQC5uo6DY50dt/4Xyn4Wy5MlV/yKTw/L45VmUphXFgd9iRWmCfdQTp6ww7w8U9sAkHQkfcBKSTw1IiwYntZMs=");
    private String value;
    private String signature;

    Skins(String Value, String Signature){
        this.value = value;
            this.signature = signature;
        }
   
    public String getValue() {return value;}
    public String getSignature() {return signature;}
}

Cette enum me permet de récupe les skins plus facilement. cette enum est la même en 1.15.1 et en 1.9.

J'ai une autre class MakeSkin

Voici la version 1.15.1 :
Code:
package fr.passepartout007.gestionjoueur.gestionSkin;

import java.util.HashSet;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;

import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;

import net.minecraft.server.v1_15_R1.EntityPlayer;
import net.minecraft.server.v1_15_R1.PacketPlayInClientCommand;
import net.minecraft.server.v1_15_R1.PacketPlayInClientCommand.EnumClientCommand;
import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy;
import net.minecraft.server.v1_15_R1.PacketPlayOutHeldItemSlot;
import net.minecraft.server.v1_15_R1.PacketPlayOutNamedEntitySpawn;
import net.minecraft.server.v1_15_R1.PacketPlayOutPlayerInfo;
import net.minecraft.server.v1_15_R1.PacketPlayOutPosition;
import net.minecraft.server.v1_15_R1.PlayerConnection;

public class MakeSkin {

    public void loadSkin(Player player) {
        Location l = player.getLocation();
        EntityPlayer entityPlayer= ((CraftPlayer)player).getHandle();
        GameProfile profile = entityPlayer.getProfile();
        profile.getProperties().put("textures",new Property("texture",Skins.SACRIM.getValue(),Skins.SACRIM.getSignature()));
       
        PacketPlayOutPlayerInfo removePlayer = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER,entityPlayer);
        PacketPlayOutPlayerInfo addPlayer = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER,entityPlayer);
        PacketPlayOutEntityDestroy destroyEntity = new PacketPlayOutEntityDestroy(player.getEntityId());
        PacketPlayOutNamedEntitySpawn spawnEntity = new PacketPlayOutNamedEntitySpawn(entityPlayer);
       
       
        for( Player onlinePlayer : Bukkit.getOnlinePlayers()) {
           
            if(!onlinePlayer.getUniqueId().equals(player.getUniqueId())) {
                PlayerConnection playerConnection = ((CraftPlayer)onlinePlayer).getHandle().playerConnection;
                playerConnection.sendPacket(removePlayer);
                playerConnection.sendPacket(addPlayer);
                playerConnection.sendPacket(destroyEntity);
                playerConnection.sendPacket(spawnEntity);
               
               
            }else {
       
                CraftPlayer craftPlayer = (CraftPlayer) onlinePlayer;
       
                   PlayerConnection playerConnection = craftPlayer.getHandle().playerConnection;
                   // PacketPlayOutRespawn packetPlayOutRespawn = new PacketPlayOutRespawn(craftPlayer.getHandle().dimension,
                        //    craftPlayer.getWorld().getEnvironment().getId(),
                         //   entityPlayer.getWorld().worldData.getType(),
                           // entityPlayer.playerInteractManager.getGameMode());
                   System.out.println("3");           PacketPlayInClientCommand PacketPlayInClientCommand = new PacketPlayInClientCommand(EnumClientCommand.PERFORM_RESPAWN);

                    PacketPlayOutPosition packetPlayOutPosition = new PacketPlayOutPosition(
                     l.getX(), l.getY(), l.getZ(), l.getYaw(), l.getPitch(), new HashSet<PacketPlayOutPosition.EnumPlayerTeleportFlags>(), 0
                    );
                 
                    PacketPlayOutHeldItemSlot playOutHeldItemSlot = new PacketPlayOutHeldItemSlot(player.getInventory().getHeldItemSlot());
                 
                    playerConnection.sendPacket(removePlayer);
             
                    playerConnection.sendPacket(addPlayer);
               
                    playerConnection.sendPacket(PacketPlayInClientCommand);
       
                    playerConnection.sendPacket(packetPlayOutPosition);
         
                    playerConnection.sendPacket(playOutHeldItemSlot);
     

                    player.updateInventory();
       
                    System.out.println(craftPlayer);
           
                    craftPlayer.updateScaledHealth();
           
                    entityPlayer.triggerHealthUpdate();
           
            }
        }
       
    }
   
   
}

Qui me provoque : lost connection: Internal Exception: io.netty.handler.codec.EncoderException: java.lang.NullPointerException
dans la boucle for( Player onlinePlayer : Bukkit.getOnlinePlayers())
du coup tout les personnes présente sur le serveur sont déconnecter.


Par contre ne Version 1.9 cela fonction parfaitement voici la méthode loadSkin en 1.9

Code:
    public void loadSkin(Player player) {
        Location l = player.getLocation();
        EntityPlayer entityPlayer= ((CraftPlayer)player).getHandle();
        GameProfile profile = entityPlayer.getProfile();
        profile.getProperties().put("textures",new Property("texture",Skins.SACRIM.getValue(),Skins.SACRIM.getSignature()));
       
        PacketPlayOutPlayerInfo removePlayer = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER,entityPlayer);
        PacketPlayOutPlayerInfo addPlayer = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER,entityPlayer);
        PacketPlayOutEntityDestroy destroyEntity = new PacketPlayOutEntityDestroy(player.getEntityId());
        PacketPlayOutNamedEntitySpawn spawnEntity = new PacketPlayOutNamedEntitySpawn(entityPlayer);
       
       
        for( Player onlinePlayer : Bukkit.getOnlinePlayers()) {
           
            if(!onlinePlayer.getUniqueId().equals(player.getUniqueId())) {
                PlayerConnection playerConnection = ((CraftPlayer)onlinePlayer).getHandle().playerConnection;
                playerConnection.sendPacket(removePlayer);
                playerConnection.sendPacket(addPlayer);
                playerConnection.sendPacket(destroyEntity);
                playerConnection.sendPacket(spawnEntity);
               
               
            }else {
       
                   PlayerConnection playerConnection = ((CraftPlayer) onlinePlayer).getHandle().playerConnection;
                    PacketPlayOutRespawn packetPlayOutRespawn = new PacketPlayOutRespawn(craftPlayer.getWorld().getEnvironment().getId(),
                           entityPlayer.getWorld().getDifficulty(), entityPlayer.getWorld().worldData.getType(),
                            entityPlayer.playerInteractManager.getGameMode());

                    PacketPlayOutPosition packetPlayOutPosition = new PacketPlayOutPosition(
                     l.getX(), l.getY(), l.getZ(), l.getYaw(), l.getPitch(), new HashSet<PacketPlayOutPosition.EnumPlayerTeleportFlags>(), 0
                    );
                    PacketPlayOutHeldItemSlot playOutHeldItemSlot = new PacketPlayOutHeldItemSlot(player.getInventory().getHeldItemSlot());

                    playerConnection.sendPacket(removePlayer);
                    playerConnection.sendPacket(addPlayer);
                    playerConnection.sendPacket(packetPlayOutRespawn);
                    playerConnection.sendPacket(packetPlayOutPosition);
                    playerConnection.sendPacket(playOutHeldItemSlot);
                    player.updateInventory();
                    craftPlayer.updateScaledHealth();
                    entityPlayer.triggerHealthUpdate();
           
            }
        }
       
    }

Donc cela ne fonctionne plus en 1.15.1 et je ne comprend pas pourquoi,
Pouvez vous m'aider a mettre à jours ce code ?
ou m'indique sur quoi je doit travailler et m'expliquer pourquoi cela déconnecté tout les joueurs et a quoi cela est due ?
Cordialement,
Passepartout007


Edit : Le bug qui fais crache les joueur provienne de la ligne
Code:
playerConnection.sendPacket(addPlayer);

comme si les informations était m'auvaise ..
 
Dernière édition:

ShE3py

Développeur en autodidacte
26 Septembre 2015
1 912
35
294
217
18
Mìlhüsa
Bonsoir,

Je ne comprends pourquoi pas trop tu écris les noms de tes packages en français, mais tout le reste en anglais.
Et sinon, je n'utiliserais pas une énumération mais une classe lambda pour sauvegarder les skins, ça te permettra de pouvoir en charger à l'exécution.

Après pour ce que tu veux faire il suffit juste de s'inspirer sur un autre plugin, en l'occurrence y'en a même un OpenSource :
https://github.com/games647/ChangeS...s647/changeskin/bukkit/BukkitSkinAPI.java#L26
https://github.com/games647/ChangeS.../changeskin/bukkit/task/SkinApplier.java#L262

Tu dois probablement t'embrouiller avec les paquets, lui a simplement utilisé les fonctions de Bukkit pour cacher et afficher le joueur, laissant à Bukkit le soin de gérer ces paquets intermédiaires.

Pour ton problème, il dû au fait que tu ne remplis pas les données d'un paquet correctement, l'encodage de celui-ci échoue donc, et le serveur déconnecte le receveur. Il nous faudrait le stack trace pour mieux t'aiguiller sur l'endroit exact.

Cordialement,
ShE3py.
 

passepartout007

Nouveau
26 Septembre 2020
2
1
0
1
27
Bonsoir ShE3py, merci de ta réponse,

J'ai réussi à fixe les erreurs une étant dans l'énumération Skin,
et l'autre un oublie de S dans textures.

j'ai donc le code suivant :

enu des skin :
Code:
package fr.passepartout007.gestionjoueur.gestionSkin;

public enum Skins {

    SACRIM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTEzOTM5NjY0MCwKICAicHJvZmlsZUlkIiA6ICJkMGI4MjE1OThmMTE0NzI1ODBmNmNiZTliOGUxYmU3MCIsCiAgInByb2ZpbGVOYW1lIiA6ICJqYmFydHl5IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzU1MjhhMzg5MzhhMzU2NTQ3Nzc2MWM4MTNmZGNmMzE0YjRiMTU4ZWEyYWQxZDNhNTRjMTdkNDliZTVjYTExZjUiCiAgICB9CiAgfQp9","Y6GWDeH6m6qPjN+VJJTrWfY13uSVw5CSFLHQGazL43Vrpkbw9Xpbfo6G7TqnEdPyVYnk0UsFsO3JGjJ0UUgI0aqIAR7l5oj2q5upEseMNpK82T4G6b1KnLt7jTUQXL3+Zt1XLfqIsTe9+LEdyakTQ3XgqSefndrIUHCJh6NMOKD6nCQU3Y817Gxcir2RL/Y1QnKdMHyv+JL6CZnNNyls/RskdarYBowvKumUJ29mvWE9Fc9S9Yj7u5yex9IehBbdVqVi5bNsaFE6NyPXNwqAWksqrtVQIffH+zAkBJ4XNBHVb0sTSj9cNUBzcC8dOruHGIvgsWSLPSjrE8/KDxbK3Di1lZok8JvfjD0FntpmxpTiIvP3MqNS2xRvfYKMT7sIu4yfzAKp8gItM/noOe5Ney7Wl2YZHeifD5LgggPlku+tZka0AIdt05X6ii8bAA1bQ/lwgsOOmKbmo6QJJCp4E82EdKaIrNzGEeysMAx9H9vemS0GbtfHl+vmOKLcosyswxrizjV9kLDHUQ/qBwNXhmQ8GgrTzt+kZC8D7UTih+Z9ExBPVbwpNpD/UqP58YM9WYiucLb3OlZqAMmsNqnJaFxhyvIzk6wMaj2AVpXMliUnT1LJ9psR12Fe2LRFb1AfkSUI7P6B1KV4odh8N5JW1E2FDRGq/EoS1PmGMrVrkjs="),
    ENUM("eyJ0aW1lc3RhbXAiOjE1ODU4NjEyNjk1MTEsInByb2ZpbGVJZCI6IjkxOGEwMjk1NTlkZDRjZTZiMTZmN2E1ZDUzZWZiNDEyIiwicHJvZmlsZU5hbWUiOiJCZWV2ZWxvcGVyIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82MzMxYTUxM2IyMzE3NDJlZGYxMTk0NTcxYWY5NTRjNmMxYjAxNWZhOTdhYzI4OWM5NjA2Y2JkYmE0ZGRhMTk1In19fQ==","sYW2ljRA8AkJvXjd6+vi6ffs4FGKy3tvE2yBagxKOhV/38QVoceJi85KIFj0nRPuO0k8ru0Ef0T1qiLocQ542U7W0t8I2xKZX/MtDYU/a1XtE8TpIfZMw2G0J6ZPWo4g2Pdg7s4R4UJ5KKEu61hCurQZ//LOGHlWwb5H3SrrsJn5503EKnPKwg/rSieyFMaROVfdYR8kwwu2mbMaD1utBxybFH4tiUX1h/ycGXg1mq55UmbJ16ViE/tR9Om1jApZWST2QlKDLu3kiNoKDUDJ9LEmy+qiqfKbVqVgdbcFrvP8neIP7IZjVSxtoHxh96spal0FJmNFh+HzIkBTarGbDFydznRBmxUvsiuHGapPNBHyVhanGsOo5qYXwGiSefoVuj5axCi6vbz4v5vcV7xEWfb+PYI6TAT3VJpozysKRU1Q7TlY45fYeQsLo9aLkrqA06DRsABBAUnoFgrHNEaWrjiH4DNehf3lrlRP0WFpbIKfteZuqitEAa2/JMktAuGfAnhN7GNmAoB+okjGS+n3Zy1p2G+W/G0DhzrpHPZ0f8MEgUwUey84W0E5B/v2tuwSwl13nMREtZO20Q+kJ7tscXGGC/u3i85+FgJ/iYYbu16oX1Na4PeeEoLsWyP4ORPWKk3d1cE2pFS6JNiTLKAP+C0K6v/MN5W2KLlUK2S5Gg4="),
    ELIOM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NjUxMzQ4NiwKICAicHJvZmlsZUlkIiA6ICIxNzhmMTJkYWMzNTQ0ZjRhYjExNzkyZDc1MDkzY2JmYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJzaWxlbnRkZXRydWN0aW9uIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzI4NmNiNDdhNDQ0NjUyZmE0OWYxMjJkZGQwODg2M2VhYWMyOWQ0OGE4Y2NiZmYzMjAzYjlkZTQzMDA4YmI4ZjQiCiAgICB9CiAgfQp9","aYZJ8efX6fsRZbPKLmOU5gifYcUg6SJK4Kuqpjq1lsHFE6fRBMYhYZK6AgRhsThfbsIY3q9+ubemaH+mtPqrNXLN4TQI16IF2PMpgNeGRMg9M3OjSjiBtndJZ/36AhffX00Roxc4hvQ3YzCkSrE+1E1T2lSnKgnIiFqBEy5BJPqefL1K4dtbUoCnyisJbutchfWF0rpTx/oFvffrL1NIZNjub6ZPd/pbGKVAutj+NPeNSdOetpOVO/yFeuDBKJOeM1gp3ztUhCZc3vAq3j2f9fgLALdscCXiHA9+SfBHrIk0KlEtfPqjYlowVv3np4KinWfTuUWEUmX5eNwVU9dlKdU7zMwUWNhSDYUeW6gLeeLDAubOTTfCJBPivVotEFF/+DnHq55HKgeJ56tnn0M7UH5JdDYq7G7MaE3nJEVM9AMBVO/sw8c0brtHvVBbkQA8egshh39wY8IsAuKSwNXGwhu9mKaArR2vQe3ilrnwWF960Qz7X4LubDoQOxjRJ7upe+r4sZJZiT5DPWVNGaFmERgXxatEFho2dnFJdGZCYKgrweE5K6X3qy+n916n2IwQNYYYdvA0HY4+7NL4JBP3MpViTDIjI4xLnLOhUi5FiJfJJOEiQQPluswzHGgQcMXbd4gJ4r3ynNmatTmMvpKVKbd0DX9x2Z3fPIE4QoUoLzk="),
    IOPM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NjYwMjc1NiwKICAicHJvZmlsZUlkIiA6ICIxZDUyMzNkMzg4NjI0YmFmYjAwZTMxNTBhN2FhM2E4OSIsCiAgInByb2ZpbGVOYW1lIiA6ICIwMDAwMDAwMDAwMDAwMDBKIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2ZlOTFmNWQwNjFiOTFkYjZiMjYxNTMxNWFjZDM4Mjg5NjRmYzQyNTI4NzcxZTg2NmQzN2FhODQzMjZjNWIwMjgiCiAgICB9CiAgfQp9","N91EDZoIQKwEk1Vef7cEbuKgjDqFr/eDtTssf6UNcPbcLq92cG/FV8/9XicFYvgQnWd2JxowEtKExsc7BQrESyhvLv6Jy6mawSQBgVl0lGJ91LYZtMGIZscBgF0zikgGpkiZLN+2AWltj38R0hrzbjalK2IqjauaeX0XTQ9f5Xiism6/AnqWgUEabi2jJXylFb6p8KuvwPUREEgqV8eY1a+0qbjNQzgxV4blKWQd56zoIEvI3vveDRPbxkQu6vX/X46gh7OMFg+tDaCT9rVSg1gePqhB5DtunZ6JHGdlYtWgkFeso/1cBVaJ/2ZY5xxpey28GqfusD0hq17QBYdbfS7oryOk88C18w4c7Xqn95kS2HgU71nKgpC/TkQDfqlFU1seegkp35hHnia0AM5mL458XUMVBPFxiju1us+dleqblk2xQPfXheqMYoMjjWkGQRI+9jUJUhgzLr6jLG0syPfNhWpwaV+cQJQIrtnn7kYeiXg0+bfLDP9hRfVkmx+20AEfxHl/o9xG2mxFhiSQkHQsRouIwvoRtvS5+DwgWsQauSXECIjWR+HtS+zUI47Tda2zRgHxh4iqfBFJy0uLyOLhK82q0Lp9VsakOgjpobPZe9M1tuStgTjTjmPjodAP4clwePkzSHXwM/HD0pw2dZK16n7c8LgNLD2QSu3YduE="),
    CRAM("eyJ0aW1lc3RhbXAiOjE1ODU4NjEyOTMxNDEsInByb2ZpbGVJZCI6ImIwZDRiMjhiYzFkNzQ4ODlhZjBlODY2MWNlZTk2YWFiIiwicHJvZmlsZU5hbWUiOiJNaW5lU2tpbl9vcmciLCJzaWduYXR1cmVSZXF1aXJlZCI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzJkODc2YjBjOWExYjRlZDViZWRlZjkzYTgxYTcyZjM0ODY1ZGYxM2JiZDlmY2Q3OTkyYjcxMDljZjg4NmZhZDgifX19","wukJxOIoW77EoAlu3h6yZEqOAKvPbFvMpl4c1g0fEfRP8C0ZF0rDWvJLe/3fPRhgn0ZNQ9vKgpgabO6vRSX+9sT9JDIS/Ka9fxD2UqnCZ8ggB9mvtuppMtOxCZqlyYtaASOp5pa3EM57GPswY7OCLc1s1bWq214mdnkS8ijUuAnJiI9+/v+mDPKuDaQewGuEWkcGrr/uOrVYi64g1/j9NbwxiM9PbbQOqly8blfmRbkeAoWcKDA53LwjjjToweN1pr3HPhNOdew1U3JFndAxfJK8Pax2miGhxpr4EnSOtIQiP3uAox4dmrduygOZqa49h/+uEk5yAhVgNIIK8xfvXpY8FgW+BzKzgxFCFHMlI+vA4MJmthkqN7VYu9mykrQRRcr3FiC4xcKdngqPxzc+pZU7dIcUd8oAcjqqtNuMgJHc1XiwAvV/gVrQd3RG2ns3Muy07snjp+/6TntkRYb08LiG2oIQ7hyHGA2fN8msRBsZ34l7iNX06k3JeWjDp8lx6LtDJa4gR9oAyK4m4R8yj4R/x6Z/jnIuY79bqk6T0GIpLmxUzIKTjD5gUa6TjzeuGRRgMv2lLp+sQiTCQNA6Zy9L6zLeRwGZSoJHPzxjUl7kBJOgoiU5j42BZw0r0LGVW6mHYhmkkllJjytX/iMmxCdeSzbXmyrsO2tki/FnXtU="),
    PANDAM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NzQyOTM4MCwKICAicHJvZmlsZUlkIiA6ICI3NTE0NDQ4MTkxZTY0NTQ2OGM5NzM5YTZlMzk1N2JlYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGFua3NNb2phbmciLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWFlYjVmMWUwNjdkZGU4ZjJjOWMzMGZlY2Y1MWZhYjUzY2ZkZDBlZGUzMTQwZDBmY2QzODI3Yjk4YWIyNWE0ZiIKICAgIH0KICB9Cn0=","VkvwYLN8yvCbeN5tmdnAvzyjjL33jl5qHOA7mVu+5dcIdpt5ynfc9waGtUcGznh5LC+IpXVWPhxejBi47CeS1iGUU+LxGN65tptWmoCvMQygChahcF2HRVzkKf6xWQamALUdvKL4KhNkUSlEpyUbHgn09NGlDnrEzVlKhhZibQ+TpQSvP5O0a+eawAnuNeg9wWgKVZMVm0M/E3oJzGgQncLi7dRin6N1LRJP8KYGJMLZLHgIA0gOobp807kkfsi5PpNW7OW/fKT6O1a+qaT3Cax4rjN3LCVQLyuF2v08Mgpb3EmG0kf3PJWu2a6ob30DxVYrUVXvOY67VZhnglQZFPxGMNVUr77zDqag9cES9kuzG/KNISrqq09ec2vOEckjLKK6Z+ADj/JuWvR7m4gYxWyh5oKeSyrQ/vtto+8xRlnTaORIPigpzX+a1Eyjktz39OMWDajVEQeeVHieGf6VSSbQlHBnh0/XvgtIk3i2z6MK3uLfsXCg5Yo+pJM/6jMGPoIzkXRI1ckSQZbOs7vDBkMYbZmbkArzR+O8Qc83n5ZqE+AbOc2KqIkHhtQFvZM1wws8xXXNa7MOjC9VqNDBXC2U3/BSWxsxCNqPFL4F0X4uBYjXlcLTDYSgF/di5mOkv2CqoZTam9B4x7Qpfe9G1hZt5PzIbbN8I0bs+J1oozI="),
    SRAMF("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NjM3NzM1NiwKICAicHJvZmlsZUlkIiA6ICI0ZWQ4MjMzNzFhMmU0YmI3YTVlYWJmY2ZmZGE4NDk1NyIsCiAgInByb2ZpbGVOYW1lIiA6ICJGaXJlYnlyZDg4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzgzNDZjNWYyZWRjYmUzNDFiNThkZTRhZDIyOGI4ZTczYjFhNjE1OWNmYjBkNTZhMjg0MDVlOWUyYWFhNTUxYmEiCiAgICB9CiAgfQp9","jOTnfN224j8z+tGE+IiNZVjj26R9pKfBh0skOMpm8vWzaztF0I6N/UOP8YvsepN6yUAg9mlQCvGBSyODYY8NZ86YFWxyidAfxJVeH/Qh0MFF4K9iXFKbOOC8oCq5EKJDQYp3B2jcnCzznOvqc4R+pUaCrNqmTZH7mJa3y5+mxfNVktHLbVJUyIFgGw78n9uaNE79+v4UMz/B67N+Pt5nuXE86MwgjAqRaakeHO6iXHXPXB1AO9qSuqXoFsllfp86aGxLDz8JG+c0LlGkG4xRmZOJWSdswQktLX/HZJg/rrDrXIH8a4aD2pDbFhiZXGh9ypwfUwRrPKlYW6X811wofnL1OxntMlBYBwJDHbCsa4rauVybKT9z7Jtyrekc7m3bKqM+dJa9n7A3mFkmk17cQsabFr4WC1zK/x45e5yUUS7Doc0oOMOwZLBmHc65u8AxVUSsqnYoMAGyrwtPdAnn3eepx5ulJdPKsOze3YOK5A4CT98gpJT9ww7EopntZu1aMQ7NDiLLZDi1UmE5hcwe4YeEz6AGrMQDjiSuHeZlIDLaT9eQ3rIezl/VEwLJXvLU8tpQ23R+UcLWGpyKWD1Jp/irfMH2D35EwajoR0ZrmmlFVgV483n8Rv1dUZD9w3/xpB2lDxWoNVQiFlJu32kcYBkmWr3CJoE8g1m0it2appc="),
    HUPPERM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NjY4NTEzNiwKICAicHJvZmlsZUlkIiA6ICJjOGY3Y2M4Y2QxNjY0NTFlOTMxMjE5YmM5YTY3MDg5MSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUcmlTdGFyMTYxNiIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9mNmY0ZjI5YmJhODAwZmY3N2U4M2MwN2RhNWJjZDlkZWYxN2M5YjVkZTQwZDdhMjQ1MmM2ODVlOTM4NTdhZGE2IgogICAgfQogIH0KfQ==","UiGZWLexQ5hN/emJdZiHZSy4TIbyK6b9qEXsIvRGb3c11ZqOpyQrYv1ndPVOln6GeNw4x6BIWwgRblmzAwSO5lX6YMGah1riRq9YEtoFz7r6VzBlR9WDeSwNr48Aj7f0MDz9ZgrDWqI8Nh4C/mxBPhw05KTiIMAqt0Qm1IfaZA3VeV2+lSB/KbBRZQQ3Uf+yZ3u8e7bQwtmsaOnHbD1g7b3QlSKDgVFt8f/VY+118PuWUczW+tfnjUFOMaTXChutfQMr77G/ewvHrDpOWATqvwp+Si1QCZRy0YAe58IHQxBqEJ1jz33ngIJqSNM2ll/dRHXzeOrg3L5XhGa8P9mYTcvnvv0AemzmtjWITkuxVJUN97bG/wnUMO5tfj5/wf19YboIDzTmTbBe+F+eVTZtAgfFTBWrrNDMlZn+M+KeLV4YL3HZhUgE8UUF0eoLACmrxioqk5ZNDtyLuUPDrtPk+W2N+2QgEKn1WXboXadRWR+sJkFLdFvCCGJ6ogId6IMjOi//hJmk7iBXavwr4K+74GdGciAQ/EuZGRK99AE+YyxDUd2PAw0kkA/JYJoLoW7y/E8I8gy5HvYRdnL0mLkw6QnP8bl/B3HlMTeGvszbAfUC2TO+RAkmn4QlTOA+jGj5706SzFki+WADV8nF3XKe3OjI10A4Ds2QNQJXNlK7JWg="),
    XELORM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NjgwOTU0NSwKICAicHJvZmlsZUlkIiA6ICI0ZDcwNDg2ZjUwOTI0ZDMzODZiYmZjOWMxMmJhYjRhZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJzaXJGYWJpb3pzY2hlIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzg2OTVlNzFiYTM3MDdiNTJlYmUxZjExM2Q3YTRlMGI4Y2M1NDc2ZmNjODMzZDEwMmZjMTEzMGMxZGI0MTg2NjUiCiAgICB9CiAgfQp9","mpu9uNdlsShnfls8i6qhI+JHaIJE86XxjONaCWp6hT3iri7tyRoD6LVpyLfePUed6eWHPyYCJIRn0TJWpJtv9Aj7qni4imczLgtNyJHl2yA6mfC07Dv0CHJrYD8o93QshJ0Tos3vl7uLK2kXPZy9RKiC/PNw7uq22C1lJNnfc/9jtwnH2Jg9ARwcT76WRIjXVO7vu3ma63vUUn8+Un6c+PE4FKSLtXityU9Gs1MAoagCos3iXnMgRxBtOvPkywNfNxR0FsrKmMolCmqy1tTRwwpXl6A+XNehh6PumjXZu3VVnVF8w+cgcQyVY1NipiTmSUQyPJoxJtT7IcGEMXdZc7vJ29TLuuuwCaTjjXSOff9GoEVZVvv7bj071AS0Rzxk2Er+aBrQgoq5GVxVoeYKaVTnSCjMJwkHureGVEzHbvDk7FepZRzq33u1bYdcC+zRRLNoZjKNV8G54TjlgJZL1p8k4jYSQGJ5CG3H/7tFS8anOpIQEJB5+NkCAyXZvUw8Qw2uTiLWnjH/26tcFvmpfUrTFqQFaEr9IbIHxWhm78c2ePGyiERsfdkxn5DBUGNq99QwI9a90SfA49gWaISa4W/4KQ93Bp0IExUuqENWte8/v5LA7CX8sTYOPbpUZ/FhEFa8B2rGDg5rtfNWITi7xPkBSTVQX6UT1TtcIEvHM20="),
    IOPF("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0Njg4OTE3MCwKICAicHJvZmlsZUlkIiA6ICI2OTBkMDM2OGM2NTE0OGM5ODZjMzEwN2FjMmRjNjFlYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ5emZyXzciLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTA4MTJiNmIzY2RiNTA3ZTUyZTJkNzUyYTYyMTYyNmFjNjA3N2NhYTBlMjUxNTM2ZTc3MmQxYzY5OWZhZTBmZCIKICAgIH0KICB9Cn0=","sd8KH9Ztnu/0vLNCROMhEvuod4XqgAg6eGoLBoGQ+TAL8vT1PHi/qJpiBPfniO7ex87jTNQRzInkey1W+roa1jtfcfEyCLyY+HMLeGsaWTZZDvKMZ9HjzUIxmgs+1URFgGAiUQwF3u2JEvWMvu7LP5iFMRI4ZAYDfv5PGcGMmFtXoj+6H0x/cvh3XoQiSqwnjOqadl3L+bCGd/SqNJwOhDTDQLbhG7foATQZS7D+JzxF9lxhxlpiEYWaGF13vpESnzhMexhDKeoQDQ5cKoIPWvBGaMYI/7ru7xFEiFGxM+gYS2X7sQppzYXKBzGu8QMtJjXA69b35zUQA3AxBw+GOomE+6NDiD05Amp+rayDbN++7iFzdskPcn1B4IUfr2fwn+dQkYfDwUsH5kpKF3+DB+wwoZjGPp3yXErnJm3ghhhm3l7udNYwOK+l3Uo9orwsdwyPNYqDJA2RgqEwN8maRDM4U0549L9rSw0USyYlX4+IAvtzGc3G5eo5q/4PlsxLAkHl9j+AQVmWl5PRK7vgfrqhN1mWlZ3kQicNt84gq6JQxiM74++ByMlreZLGCUCR1jP1ltEZ+5vbTdeijJebomVJ9fvTMHB1mWf675edDwjspRhqRhP1/068UOR5LJYBiMbApow3JpagkcAac5097zZTShO3gEez0xKJajWgcwk="),
    ROUBM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0Njk3MDQ5MiwKICAicHJvZmlsZUlkIiA6ICJmMjc0YzRkNjI1MDQ0ZTQxOGVmYmYwNmM3NWIyMDIxMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJIeXBpZ3NlbCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82N2YzZDljOGJlOGVkYTQ1ZjRiZjQwOGZiYmE5MjEyNWY1NzM3MDBkM2Y5YzVkNmU1MmExZjliMWMxNjNiMzA4IgogICAgfQogIH0KfQ==","TypzBuE0Q38y5vqD2L+EW9x3lEziBoDDj4fC3SfgNdobh7i8yDPZj22VJpuOCOzQcM8yg53RWVzsl8+8EaloTAtmEhio5LfATOyzvjDoa4Ge31zMQMVEDnRL8Q42h2GthszORBM/fEtXVM93hHqNw3JOsbc6+x9sR5FDD9dFJh/A7SRsZ40yizzRMYdQaOjf3OpJmWOj0X/nob1HFdm1ogPTVfs6p9nK3mzy2RYZt1p3bmX38JSVnKHK4nXZ62uBe/I4+NC8Ke1val5AFEzu82FnUZgP367V9fcWHiZt2EcVbe5vXfcZaF95yCZNsaQjEPfOq3jMG5kzlKqXwyUO7hUufOErrR9rXbizzxdSGnYOgrEwri5V7AN2vc2bvvDKdLXQZRg+cBHXVjAP6a942X6DsYYJnypdmnDPFkXnYIEuJNW6pCSiSoNyGbap73l4g19doOuvYGFQva259gjB0F/AKecIM3wrM725RPRC/yfGfo8PSKmIHiJ4TUAdQ9GZSVjUZ/+7aUV7I0eU7n4fcrrJAAJUMIUjv4o4hBrFkzCGECkLrLFgAUrLSsOD7ZSXCyNh4fYcj5Z4q0D+2nf7kOReUZrmvOi68o/S6FoIxnmr2W8GTccUrM55irmNscqihrDyF1BJ/V3OM0DNr3Kazc2ePtMcJ6TQUiH39/sk63g="),
    ECAM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NzA3NDc0NywKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YWFjZWYzZWRlOTY5NzZhZjI0ODYzM2MzYTljMDJlYmUxMmUwYTlkYjAzOTYzNzdiNjEyMTEyMTNhOGNiMjA2IgogICAgfQogIH0KfQ==","nfYer+rW/ETFM+38rAqcycwDcCUZeqz13dxFL5baizc51x9wLU7Qagv8SH7Of/Zpmtrhq9StafXEnHqzxNyPuVyuJdRMGmv9rmJg09KcKr+yvCCXDXEgxNaaPon3mYeCuEbq77WAhS0JQpSlfPtBcMrFfKJ7QVxqBnb5iWw0p5B9X1CWTVo2AEOVLvi7709JWM55Z70hwBFx1r2ohkQPuuaCUd04MqneJ+DuP+yjG28sCjZ0WyWt9UdbQGhlqdjMT5Q/hHuv5NYYCEZ/aKjgwULv0Ul1p4yL6QsHh+VzNJpTe6I/nswxqXNOLplVq4ds7ZkOkAGefgTA5B5W+ttRpbM44ekLmPrJgRfwuHYbhr2TGDn5HcC2d1QW66BxGNJm6wPHBtkb0LJgN+j59knA3LTkOnjNx1jZCKpFZGywtP/gIyTEjs3Kg69HMM2ZeNTq1WvBcjQa08zvSy5+J5KHhs7KWtbpf7PVVVRp1nDD9Yzlas3MSEWTLcNHjfzAYFzL28w/z+LvdBIEVJIwZnsg8rny/GqY9I15dz6vvVjTPWHtNg8jv9wTm84FwwBcMcdToSmvaExyJAGW2S1UoJTiNIMJQqhyAPJ5NFdSdMpHjYSiH2YTRn/F9dkGzwYmeGS1YIPqYRUXikEBk5+Jo+IVB9j9vfzqH+aicjuQIKFqqwo="),
    ZOBALM("ewogICJ0aW1lc3RhbXAiIDogMTYwMTE0NzE1MzI4NSwKICAicHJvZmlsZUlkIiA6ICI0OWIzODUyNDdhMWY0NTM3YjBmN2MwZTFmMTVjMTc2NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJiY2QyMDMzYzYzZWM0YmY4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2JlNmMwNTJmZDc5OWY5ZTcyYThlNmE0NDVlMzczMWI2NzhlN2E4YzAxZDZlZGJhYTIzMTNlZWMyMDlhMzVmZjUiCiAgICB9CiAgfQp9","aw+32eS1sL9d7abgRXAka+K5pmVXe+0pVP+9i7tBIAuZnj9PDxhoFdn1tL4OEY/scKN8G6W4xnafhq7nwP47i14UrgdgXeeGTHHAi4Net4fax9fhkC6aktL97C81dmO3y2oGwiO37cZhtb9GlRnXOWROnhIQk604g4i9ZDNY2Yr1cYkZeBIcoMshamVRyxryWZ07Z11HK2qSxH94rTn/ADqiMf2kiEf/ysCglkP8GHUoozQE0TNHQUDElJRVNAEQyVyB9G7TcYCs/4wGYqUk9InENecgRwzO7F69DqtJk3moj3Tz60WUvXDwtKtVAvOSb1M1MIIUmJESORKSAw5F5xXiUeLqupWIAB0Son/4qoWz2fSMTtbHjnNVn0UuAAiGcB3EIsjn4s/2gSvzFQo8VPN2mPq4Nd1PzXAE2GUblJhrh9lNCbvdfGlgbATyokHE7vxHdFGIp8D/FRInH21Lf9prNF/WKkFOlvm7MBoEaN7a9LvUd2AiWQQEeqlDzeQ/XBeHEWH2teP4ZVjCvVEKDbH91Ny8vCd1qGLfA8jckBP7qbCEykFXT8azLqMKENyE7MfgqTheDKdjOufeW2UrHOfQC5uo6DY50dt/4Xyn4Wy5MlV/yKTw/L45VmUphXFgd9iRWmCfdQTp6ww7w8U9sAkHQkfcBKSTw1IiwYntZMs=");
    private String value;
    private String signature;

    Skins(String Value, String Signature){
        this.value = Value;
        this.signature = Signature;
        }
    
    public String getValue() {return value;}
    public String getSignature() {return signature;}
}


class de changement de skin :

Code:
package fr.passepartout007.gestionjoueur.gestionSkin;

import java.util.HashSet;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;

import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;

import net.minecraft.server.v1_15_R1.EntityPlayer;
import net.minecraft.server.v1_15_R1.PacketPlayOutEntityDestroy;
import net.minecraft.server.v1_15_R1.PacketPlayOutHeldItemSlot;
import net.minecraft.server.v1_15_R1.PacketPlayOutNamedEntitySpawn;
import net.minecraft.server.v1_15_R1.PacketPlayOutPlayerInfo;
import net.minecraft.server.v1_15_R1.PacketPlayOutPosition;
import net.minecraft.server.v1_15_R1.PacketPlayOutRespawn;
import net.minecraft.server.v1_15_R1.PlayerConnection;

public class MakeSkin {

    public void loadSkin(Player player) {
        Location l = player.getLocation();
        EntityPlayer entityPlayer= ((CraftPlayer)player).getHandle();
        GameProfile profile = entityPlayer.getProfile();
        profile.getProperties().removeAll("textures");
        profile.getProperties().put("textures",new Property("textures",Skins.ELIOM.getValue(),Skins.ELIOM.getSignature()));
        
        PacketPlayOutPlayerInfo removePlayer = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER,entityPlayer);
        PacketPlayOutPlayerInfo addPlayer = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER,entityPlayer);
        PacketPlayOutEntityDestroy destroyEntity = new PacketPlayOutEntityDestroy(player.getEntityId());
        PacketPlayOutNamedEntitySpawn spawnEntity = new PacketPlayOutNamedEntitySpawn(entityPlayer);
        
        
        for( Player onlinePlayer : Bukkit.getOnlinePlayers()) {
            
            if(!onlinePlayer.getUniqueId().equals(player.getUniqueId())) {
                PlayerConnection playerConnection = ((CraftPlayer)onlinePlayer).getHandle().playerConnection;
                playerConnection.sendPacket(removePlayer);
                playerConnection.sendPacket(addPlayer);
                playerConnection.sendPacket(destroyEntity);
                playerConnection.sendPacket(spawnEntity);
                
                
            }else {
        
                CraftPlayer craftPlayer = (CraftPlayer) onlinePlayer;
        
                   PlayerConnection playerConnection = craftPlayer.getHandle().playerConnection;
                  

                  
                  
                   PacketPlayOutRespawn packetPlayOutRespawn = new PacketPlayOutRespawn(craftPlayer.getHandle().dimension,
                        craftPlayer.getWorld().getEnvironment().getId(),
                          entityPlayer.getWorld().worldData.getType(),
                            entityPlayer.playerInteractManager.getGameMode());
                  
                    PacketPlayOutPosition packetPlayOutPosition = new PacketPlayOutPosition(
                     l.getX(), l.getY(), l.getZ(), l.getYaw(), l.getPitch(), new HashSet<PacketPlayOutPosition.EnumPlayerTeleportFlags>(), 0
                    );
                  
                    PacketPlayOutHeldItemSlot playOutHeldItemSlot = new PacketPlayOutHeldItemSlot(player.getInventory().getHeldItemSlot());
                  
                    playerConnection.sendPacket(removePlayer);
              
                    playerConnection.sendPacket(addPlayer);
                
                    playerConnection.sendPacket(packetPlayOutRespawn);
                    playerConnection.sendPacket(packetPlayOutPosition);
          
                    playerConnection.sendPacket(playOutHeldItemSlot);
      

                    player.updateInventory();
        

            
                    craftPlayer.updateScaledHealth();
            
                    entityPlayer.triggerHealthUpdate();
            
            }
        }
        
    }
    
    
}

Effectivement je mélange de français et l'anglais ce qui est une mauvaise chose, je devrais tout mètre en anglais.
j'avais vu ses OpenSource, sauf que je ne comprend pas tout, on peux dire que je suis un débutant dans la programmation en Java et en plugins minecraft, en lisant cette openSource je ne comprend presque rien et suis perdu dans les classe.
je vois bien qui laisse bukkit géré cette mise a jouer de skin :
Code:
 Bukkit.getPluginManager().callEvent(new PlayerChangeSkinEvent(receiver, targetSkin));
mais je ne comprend pas comment je peux appliquer ce " SkinModel " à mon code actuellement...

En tout cas avec le correctif d'erreur le code fonctionne correctement pour tout les comptes officiel. Il me manque plus qu'as le faire fonctionner pour les compte non officiel. Si vous avez une idée je suis preneur.
Cordialement,
Passepartout007
 
Solution