From fd04eb6abbaeef618c1b85a35d0a0c4a8b79e3f4 Mon Sep 17 00:00:00 2001 From: KillerXCoder Date: Wed, 12 Feb 2020 11:55:50 +0000 Subject: [PATCH 1/7] Translate categories_sk.yml via GitLocalize --- .../resources/languages/categories_sk.yml | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/main/resources/languages/categories_sk.yml b/src/main/resources/languages/categories_sk.yml index 0852a87f9..83fbfda26 100644 --- a/src/main/resources/languages/categories_sk.yml +++ b/src/main/resources/languages/categories_sk.yml @@ -1,25 +1,25 @@ --- slimefun: - weapons: Zbrane - tools: Nástroje - items: Užitočné itemy - food: Jedlo - basic_machines: Základné stroje - electricity: Energia a elektrina - gps: GPS stroje armor: Brnenie - magical_items: Magické itemy - magical_gadgets: Magické komponenty - misc: Rôzne itemy - technical_gadgets: Technické komponenty - resources: Zdroje - cargo: Správa cargo siete - tech_misc: Technické komponenty - magical_armor: Magické brnenie - talismans: Talizmany (Úroveň I) - ender_talismans: Talizmany endu (Úroveň II) - christmas: Vianoce (December) - valentines_day: Valentín (14. február) - easter: Veľká noc (Apríl) + basic_machines: Základné stroje birthday: Narodeniny TheBusyBiscuit -a (26. október) + christmas: Vianoce (December) + easter: Veľká noc (Apríl) + electricity: Energia a elektrina + ender_talismans: Talizmany endu (Úroveň II) + food: Jedlo + gps: GPS stroje halloween: Halloween (31. október) + items: Užitočné itemy + magical_armor: Magické brnenie + magical_gadgets: Magické komponenty + magical_items: Magické itemy + misc: Rôzne itemy + talismans: Talizmany (Úroveň I) + tech_misc: Technické komponenty + technical_gadgets: Technické komponenty + tools: Nástroje + valentines_day: Valentín (14. február) + weapons: Zbrane + resources: Suroviny + cargo: Cargo sieť From 06a8c72720c550aa5d5c64c00d5c6795881db6f2 Mon Sep 17 00:00:00 2001 From: KillerXCoder Date: Wed, 12 Feb 2020 12:17:08 +0000 Subject: [PATCH 2/7] Translate researches_sk.yml via GitLocalize --- .../resources/languages/researches_sk.yml | 424 +++++++++--------- 1 file changed, 212 insertions(+), 212 deletions(-) diff --git a/src/main/resources/languages/researches_sk.yml b/src/main/resources/languages/researches_sk.yml index b5be85550..127ebc1a9 100644 --- a/src/main/resources/languages/researches_sk.yml +++ b/src/main/resources/languages/researches_sk.yml @@ -1,232 +1,232 @@ --- slimefun: - walking_sticks: Vychádzkové paličky - portable_crafter: Prenosný crafter - fortune_cookie: Koláčik šťastia - portable_dustbin: Prenosný kôš - armor_forge: Craftenie brnení - ore_washer: Čistenie rudy - gold_carats: Čisté zlato - smelters_pickaxe: Vypekací krompáč - common_talisman: Obyčajný talizman - anvil_talisman: Talizman kovadliny - miner_talisman: Talizman baníka - hunter_talisman: Talizman lovca - lava_talisman: Talizman chodenia po láve - water_talisman: Talizman dýchania pod vodou - angel_talisman: Talizman anjela - fire_talisman: Talizman bojovníka s ohňom - magician_talisman: Talizman kúzelníka - traveller_talisman: Talizman cestovateľa - warrior_talisman: Talizman bojovníka - knight_talisman: Talizman rytiera - gilded_iron: Žiarivé železo - whirlwind_talisman: Talizman víchrice - lumber_axe: Drevorubačská sekera - uranium: Radioaktívne - crushed_ore: Očistenie rudy - first_aid: Prvá pomoc - night_vision_googles: Okuliare s nočným videním - pickaxe_of_containment: Krompáč spawnerov - slime_steel_armor: Sliznaté oceľové brnenie 24k_gold_block: Zlaté mesto - composter: Kompostovanie zeme - farmer_shoes: Farmárové boty - explosive_tools: Výbušné nástroje - crucible: Taviareň - ender_talismans: Talizmany endu - armored_jetboots: Obrnené tryskové topánky - bound_weapons: Zbrane naviazané na dušu - bound_tools: Nástroje naviazané na dušu - bound_armor: Brnenie naviazané na dušu - juicer: Lahodné nápoje - repaired_spawner: Opravovanie spawnerov - enhanced_furnace: Vylepšená pec - more_enhanced_furnaces: Lepšie pece - high_tier_enhanced_furnaces: Špičková pec - reinforced_furnace: Zpevnená pec - carbonado_furnace: Pec z brúseného diamantu - electric_motor: Zahrievanie - block_placer: Pokladač blokov - scroll_of_dimensional_teleposition: Otočiť veci naopak - special_bows: Robin Hood - tome_of_knowledge_sharing: Delenie sa s kamarátmi - flask_of_knowledge: Uschovávanie XP - hardened_glass: Odolnosť voči výbuchu - golden_apple_juice: Zlatý elixír - cooler: Prenášanie nápojov - ancient_altar: Staroveký oltár - wither_proof_obsidian: Obsidian odolný voči witherom - ancient_runes: Runy živlov - special_runes: Fialové runy - infernal_bonemeal: Pekelná kostná múčka - rainbow_blocks: Dúhové bloky - infused_hopper: Infusovaný hopper - wither_proof_glass: Sklo odolné voči witherom - duct_tape: Lepiaca páska - plastic_sheet: Plast - android_memory_core: Pamäťové jadro - oil: Olej - fuel: Palivo - hologram_projector: Hologramy - capacitors: Kondenzátory úrovne 1 - high_tier_capacitors: Kondenzátory úrovne 2 - solar_generators: Slnečná elektráreň - electric_furnaces: Napájaná pec - electric_ore_grinding: Drvenie - heated_pressure_chamber: Vyhrievaná tlaková komora - coal_generator: Generátor na uhlie - bio_reactor: Bio-reaktor - auto_enchanting: Automatické enchantovanie a odoberanie enchantov - auto_anvil: Automatická kovadlina - multimeter: Meranie energie - gps_setup: Základné zapojenie GPS - gps_emergency_transmitter: Núdzový GPS waypoint - programmable_androids: Programovateľné androidy - android_interfaces: Rozhrania androidov - geo_scanner: GEO-skenovanie - combustion_reactor: Spaľovací reaktor - teleporter: Základné komponenty teleportera - teleporter_activation_plates: Aktivácia teleportera - better_solar_generators: Vylepšené solárne generátory - better_gps_transmitters: Vylepšené vysielače - elevator: Výťahy - energized_solar_generator: Stála slnečná energia - energized_gps_transmitter: Najvyššia úroveň vysielača - energy_regulator: Elektrická sieť 101 - butcher_androids: Android mäsiar - organic_food: Organické jedlo - auto_breeder: Automatizované kŕmenie advanced_android: Pokročilé androidy advanced_butcher_android: Pokročilé androidy - mäsiar + advanced_circuit_board: Pokročilá obvodová doska + advanced_electric_smeltery: Pokročilá elektrická taviareň + advanced_farmer_android: Pokročilé Androidy - farmár advanced_fisherman_android: Pokročilé androidy - rybár + advanced_output_node: Pokročilý výstupný uzol + alloys: Pokročilé zliatiny + ancient_altar: Staroveký oltár + ancient_runes: Runy živlov + android_interfaces: Rozhrania androidov + android_memory_core: Pamäťové jadro + angel_talisman: Talizman anjela animal_growth_accelerator: Manipulácia rastu zvierat - xp_collector: Zberač XP - organic_fertilizer: Organické hnojivo - crop_growth_accelerator: Urýchlovač rastu plodín + anvil_talisman: Talizman kovadliny + armored_jetboots: Obrnené tryskové topánky + armored_jetpack: Obrnený jetpack + armor_forge: Craftenie brnení + auto_anvil: Automatická kovadlina + auto_breeder: Automatizované kŕmenie + auto_drier: Suchý deň + auto_enchanting: Automatické enchantovanie a odoberanie enchantov + automated_crafting_chamber: Automatizované craftenie + automated_panning_machine: Automatická zlatá panvica + automatic_ignition_chamber: Automatická zapaľovacia komora + backpacks: Batohy + basic_circuit_board: Základná obvodová doska + battery: Tvoja prvá baterka + better_carbon_press: Vylepšený uhlíkový lis better_crop_growth_accelerator: Pokročilý urýchlovač rastu plodín - reactor_essentials: Základy reaktoru - nuclear_reactor: Jadrová elektráreň - freezer: Mraznička + better_electric_crucibles: Vyhrievaná taviareň + better_electric_furnace: Vylepšená elektrická pec + better_food_fabricator: Vylepšená výroba jedla + better_freezer: Vylepšená mraznička + better_gps_transmitters: Vylepšené vysielače + better_heated_pressure_chamber: Vylepšená vyhrievaná tlaková komora + better_solar_generators: Vylepšené solárne generátory + bio_reactor: Bio-reaktor + blade_of_vampires: Čepeľ upírov + blistering_ingots: Radioaktivne ingoty + block_placer: Pokladač blokov + boosted_uranium: Nikdy nekončiaci kruh + boots_of_the_stomper: Topánky dupača + bound_armor: Brnenie naviazané na dušu + bound_backpack: Skladovanie duší + bound_tools: Nástroje naviazané na dušu + bound_weapons: Zbrane naviazané na dušu + bronze: Vytvorenie bronzu + butcher_androids: Android mäsiar + cactus_armor: Kaktusový oblek + capacitors: Kondenzátory úrovne 1 + carbonado: Čierne diamanty + carbonado_furnace: Pec z brúseného diamantu + carbonado_tools: Špičkové stroje + carbon_press: Uhlíkový lis cargo_basics: Základy prenosu cargo_nodes: Nastavenie prenosu - electric_ingot_machines: Elektrická výroba ingotov - automated_crafting_chamber: Automatizované craftenie - better_food_fabricator: Vylepšená výroba jedla - reactor_access_port: Interakcia s reaktorom - fluid_pump: Pumpa na tekutiny - better_freezer: Vylepšená mraznička - boosted_uranium: Nikdy nekončiaci kruh - trash_can: Odpad - electric_smeltery: Elektrická pec - better_electric_furnace: Vylepšená elektrická pec - wither_assembler: Automatizovaný zabijak witherov - elytra: Elytry - special_elytras: Špeciálne elytry - better_electric_crucibles: Vyhrievaná taviareň - nether_ice: Chladivo - ľad z netheru - blistering_ingots: Radioaktivne ingoty - output_chest: Výstupná truhla zo základných strojov - auto_drier: Suchý deň - diet_cookie: Diétny koláčik + chainmail_armor: Krúžkové brnenie charging_bench: Nabíjacia stanica - magnesium_generator: Energia z horčíka - kelp_cookie: Chutná riasa - meat_jerky: Sušené mäso - glowstone_armor: Glowstone Brnenie - lumps: Hrudky a kúzla - ender_backpack: Ender batoh - ender_armor: Ender Brnenie - magic_eye_of_ender: Magiké Oko Endu - magic_sugar: Magický cukor - monster_jerky: Sušené mäso z monštier - slime_armor: Slime brnenie - sword_of_beheading: Meč popráv - basic_circuit_board: Základná obvodová doska - advanced_circuit_board: Pokročilá obvodová doska - smeltery: Taviareň - steel: Vek ocele - misc_power_items: Dôležité veci súvisiace s energiou - battery: Tvoja prvá baterka - steel_plate: Oceľové pokovovanie - steel_thruster: Oceľový pohon - parachute: Padák - grappling_hook: Kotviaci hák - jetpacks: Jetpacky - multitools: Viac nástrojov - solar_panel_and_helmet: Solárna energia - elemental_staff: Elementárne tyče - grind_stone: Brúsiaci kameň - cactus_armor: Kaktusový oblek - gold_pan: Zlatá panvica - magical_book_cover: Magická knižná väzba - slimefun_metals: Nové kovy - ore_crusher: Zdvojnásobenie rudy - bronze: Vytvorenie bronzu - alloys: Pokročilé zliatiny + coal_generator: Generátor na uhlie + cobalt_pickaxe: Rýchly krompáč + combustion_reactor: Spaľovací reaktor + common_talisman: Obyčajný talizman + composter: Kompostovanie zeme compressor_and_carbon: Vytvorenie uhlíka - gilded_iron_armor: Pozlatené železné brnenie - synthetic_diamond: Umelé diamanty - pressure_chamber: Tlaková komora - synthetic_sapphire: Umelý zafír + cooler: Prenášanie nápojov + copper_wire: Zriedená vodivosť + crop_growth_accelerator: Urýchlovač rastu plodín + crucible: Taviareň + crushed_ore: Očistenie rudy damascus_steel: Damašská oceľ damascus_steel_armor: Brnenie z Damašskej ocele - reinforced_alloy: Zosilnená zliatina - carbonado: Čierne diamanty - magic_workbench: Magický pracovný stôl - wind_staff: Veterná tyč - reinforced_armor: Vystužené brnenie - silicon: Silicon Valley - fire_staff: Ohnivá palica - lava_crystal: Horúca situácia - synthetic_emerald: Falošný drahokam - chainmail_armor: Krúžkové brnenie - wizard_talisman: Talizman čarodejníka - hazmat_suit: Hazmat oblek - redstone_alloy: Redstonová zliatina - carbonado_tools: Špičkové stroje - gold_armor: Lesklé brnenie - hercules_pickaxe: Herkulesov krompáč - table_saw: Stolová píla - blade_of_vampires: Čepeľ upírov - water_staff: Vodná palica - automated_panning_machine: Automatická zlatá panvica - boots_of_the_stomper: Topánky dupača - pickaxe_of_the_seeker: Krompáč hľadača - backpacks: Batohy - woven_backpack: Tkaný batoh - gilded_backpack: Pozlatený batoh - armored_jetpack: Obrnený jetpack - nickel_and_cobalt: Ešte viac rúd - magnet: Magnetické kovy - infused_magnet: Infúzne magnety - cobalt_pickaxe: Rýchly krompáč - essence_of_afterlife: Čierna mágia - bound_backpack: Skladovanie duší - jetboots: Tryskové topánky - seismic_axe: Seizmická sekera - pickaxe_of_vein_mining: Krompáč žílnej ťažby - high_tier_electric_ingot_machines: Super rýchla výroba ingotu - advanced_output_node: Pokročilý výstupný uzol - carbon_press: Uhlíkový lis - better_carbon_press: Vylepšený uhlíkový lis + diet_cookie: Diétny koláčik + duct_tape: Lepiaca páska + electric_crucible: Elektrifikovaný téglik + electric_furnaces: Napájaná pec + electric_ingot_machines: Elektrická výroba ingotov + electric_motor: Zahrievanie + electric_ore_grinding: Drvenie + electric_press: Elektrický lis + electric_smeltery: Elektrická pec + elemental_staff: Elementárne tyče + elevator: Výťahy + elytra: Elytry empowered_android: Posilnené Androidy empowered_butcher_android: Posilnené Androidy - Mäsiar empowered_fisherman_android: Posilnené Androidy - Rybár - high_tier_carbon_press: Ultimátny uhlíkový lis - better_heated_pressure_chamber: Vylepšená vyhrievaná tlaková komora - electric_crucible: Elektrifikovaný téglik - advanced_electric_smeltery: Pokročilá elektrická taviareň - advanced_farmer_android: Pokročilé Androidy - farmár - lava_generator: Generátor lávy - nether_star_reactor: Reaktor z Nether hviezdy - automatic_ignition_chamber: Automatická zapaľovacia komora - copper_wire: Zriedená vodivosť - radiant_backpack: Žiariaci batoh - storm_staff: Palica búrky - soulbound_rune: Runa duší + ender_armor: Ender Brnenie + ender_backpack: Ender batoh + ender_talismans: Talizmany endu + energized_gps_transmitter: Najvyššia úroveň vysielača + energized_solar_generator: Stála slnečná energia + energy_regulator: Elektrická sieť 101 + enhanced_furnace: Vylepšená pec + essence_of_afterlife: Čierna mágia + explosive_tools: Výbušné nástroje + farmer_shoes: Farmárové boty + fire_staff: Ohnivá palica + fire_talisman: Talizman bojovníka s ohňom + first_aid: Prvá pomoc + flask_of_knowledge: Uschovávanie XP + fluid_pump: Pumpa na tekutiny + fortune_cookie: Koláčik šťastia + freezer: Mraznička + fuel: Palivo geo_miner: GEO-Miner + geo_scanner: GEO-skenovanie + gilded_backpack: Pozlatený batoh + gilded_iron: Žiarivé železo + gilded_iron_armor: Pozlatené železné brnenie + glowstone_armor: Glowstone Brnenie + gold_armor: Lesklé brnenie + gold_carats: Čisté zlato + golden_apple_juice: Zlatý elixír + gold_pan: Zlatá panvica + gps_emergency_transmitter: Núdzový GPS waypoint + gps_setup: Základné zapojenie GPS + grappling_hook: Kotviaci hák + grind_stone: Brúsiaci kameň + hardened_glass: Odolnosť voči výbuchu + hazmat_suit: Hazmat oblek + heated_pressure_chamber: Vyhrievaná tlaková komora + hercules_pickaxe: Herkulesov krompáč + high_tier_capacitors: Kondenzátory úrovne 2 + high_tier_carbon_press: Ultimátny uhlíkový lis + high_tier_electric_ingot_machines: Super rýchla výroba ingotu + high_tier_enhanced_furnaces: Špičková pec + hologram_projector: Hologramy + hunter_talisman: Talizman lovca + infernal_bonemeal: Pekelná kostná múčka + infused_hopper: Infusovaný hopper + infused_magnet: Infúzne magnety + jetboots: Tryskové topánky + jetpacks: Jetpacky + juicer: Lahodné nápoje + kelp_cookie: Chutná riasa + knight_talisman: Talizman rytiera + lava_crystal: Horúca situácia + lava_generator: Generátor lávy + lava_talisman: Talizman chodenia po láve lightning_rune: Runa blesku - totem_of_undying: Totem večnosti + lumber_axe: Drevorubačská sekera + lumps: Hrudky a kúzla + magical_book_cover: Magická knižná väzba + magic_eye_of_ender: Magiké Oko Endu + magician_talisman: Talizman kúzelníka + magic_sugar: Magický cukor + magic_workbench: Magický pracovný stôl + magnesium_generator: Energia z horčíka + magnet: Magnetické kovy + meat_jerky: Sušené mäso + miner_talisman: Talizman baníka + misc_power_items: Dôležité veci súvisiace s energiou + monster_jerky: Sušené mäso z monštier + more_enhanced_furnaces: Lepšie pece + multimeter: Meranie energie + multitools: Viac nástrojov nether_gold_pan: Zlatá panvica z netheru - electric_press: Elektrický lis + nether_ice: Chladivo - ľad z netheru + nether_star_reactor: Reaktor z Nether hviezdy + nickel_and_cobalt: Ešte viac rúd + night_vision_googles: Okuliare s nočným videním + nuclear_reactor: Jadrová elektráreň + oil: Olej + ore_crusher: Zdvojnásobenie rudy + ore_washer: Čistenie rudy + organic_fertilizer: Organické hnojivo + organic_food: Organické jedlo + output_chest: Výstupná truhla zo základných strojov + parachute: Padák + pickaxe_of_containment: Krompáč spawnerov + pickaxe_of_the_seeker: Krompáč hľadača + pickaxe_of_vein_mining: Krompáč žílnej ťažby + plastic_sheet: Plast + portable_crafter: Prenosný crafter + portable_dustbin: Prenosný kôš + pressure_chamber: Tlaková komora + programmable_androids: Programovateľné androidy + radiant_backpack: Žiariaci batoh + rainbow_blocks: Dúhové bloky + reactor_access_port: Interakcia s reaktorom + reactor_essentials: Základy reaktoru + redstone_alloy: Redstonová zliatina + reinforced_alloy: Zosilnená zliatina + reinforced_armor: Vystužené brnenie + reinforced_furnace: Zpevnená pec + repaired_spawner: Opravovanie spawnerov + scroll_of_dimensional_teleposition: Otočiť veci naopak + seismic_axe: Seizmická sekera + silicon: Silicon Valley + slime_armor: Slime brnenie + slimefun_metals: Nové kovy + slime_steel_armor: Sliznaté oceľové brnenie + smelters_pickaxe: Vypekací krompáč + smeltery: Taviareň + solar_generators: Slnečná elektráreň + solar_panel_and_helmet: Solárna energia + soulbound_rune: Runa duší + special_bows: Robin Hood + special_elytras: Špeciálne elytry + special_runes: Fialové runy + steel: Vek ocele + steel_plate: Oceľové pokovovanie + storm_staff: Palica búrky + sword_of_beheading: Meč popráv + synthetic_diamond: Umelé diamanty + synthetic_emerald: Falošný drahokam + synthetic_sapphire: Umelý zafír + table_saw: Stolová píla + teleporter: Základné komponenty teleportera + teleporter_activation_plates: Aktivácia teleportera + tome_of_knowledge_sharing: Delenie sa s kamarátmi + totem_of_undying: Totem večnosti + trash_can: Odpad + traveller_talisman: Talizman cestovateľa + uranium: Radioaktívne + walking_sticks: Vychádzkové paličky + warrior_talisman: Talizman bojovníka + water_staff: Vodná palica + water_talisman: Talizman dýchania pod vodou + whirlwind_talisman: Talizman víchrice + wind_staff: Veterná tyč + wither_assembler: Automatizovaný zabijak witherov + wither_proof_glass: Sklo odolné voči witherom + wither_proof_obsidian: Obsidian odolný voči witherom + wizard_talisman: Talizman čarodejníka + woven_backpack: Tkaný batoh + xp_collector: Zberač XP + steel_thruster: Oceľová tryska From ef0466a2ee04196ed2c77dee1d9d94de91d8e311 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 12 Feb 2020 12:35:59 +0000 Subject: [PATCH 3/7] Update dependency org.apache.maven.plugins:maven-shade-plugin to v3.2.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b69a9259e..97ff9a1d0 100644 --- a/pom.xml +++ b/pom.xml @@ -61,7 +61,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.1 + 3.2.2 From 0ff1311c322950052550a45a71b3edba9d21963f Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Thu, 13 Feb 2020 01:30:27 +0100 Subject: [PATCH 4/7] [CI skip] Updated language files and reduced technical debt --- .../api/events/PlayerLanguageChangeEvent.java | 43 ++++ .../slimefun4/api/gps/GPSNetwork.java | 12 +- .../slimefun4/api/player/PlayerBackpack.java} | 8 +- .../core/attributes/RecipeDisplayItem.java | 21 ++ .../commands/subcommands/ResearchCommand.java | 54 +++-- .../core/guide/ChestSlimefunGuide.java | 6 +- .../slimefun4/core/guide/GuideSettings.java | 3 + .../localization/SupportedLanguage.java | 6 +- .../android/ProgrammableAndroid.java | 62 +++--- .../listeners/CoolerListener.java | 4 +- .../listeners/MultiBlockListener.java | 17 +- .../listeners/TalismanListener.java | 16 +- .../listeners/TeleporterListener.java | 16 +- .../setup/SlimefunItemSetup.java | 39 +--- .../Objects/SlimefunItem/SlimefunMachine.java | 2 +- .../abstractItems/AGenerator.java | 6 +- .../SlimefunItem/abstractItems/AReactor.java | 8 +- .../{machines => blocks}/AncientPedestal.java | 2 +- .../HologramProjector.java | 9 +- .../{machines => blocks}/InfusedHopper.java | 7 +- .../ReactorAccessPort.java | 2 +- .../SlimefunItem/blocks/RepairedSpawner.java | 55 +++++ .../{machines => blocks}/TrashCan.java | 2 +- .../interfaces/DamageableItem.java | 2 +- .../interfaces/RecipeDisplayItem.java | 21 -- .../Objects/SlimefunItem/items/GoldPan.java | 7 +- .../SlimefunItem/items/NetherGoldPan.java | 7 +- .../SlimefunItem/machines/Composter.java | 2 +- .../SlimefunItem/machines/Crucible.java | 2 +- .../machines/electric/AutoDrier.java | 2 +- .../machines/electric/CarbonPress.java | 2 +- .../machines/electric/ElectricGoldPan.java | 2 +- .../electric/ElectricIngotFactory.java | 2 +- .../electric/ElectricIngotPulverizer.java | 2 +- .../machines/electric/ElectricOreGrinder.java | 2 +- .../machines/electric/ElectricPress.java | 2 +- .../machines/electric/FoodComposter.java | 2 +- .../machines/electric/Freezer.java | 2 +- .../machines/electric/Refinery.java | 2 +- .../machines/electric/geo/GEOMiner.java | 6 +- .../machines/electric/geo/OilPump.java | 2 +- .../Slimefun/Setup/SlimefunManager.java | 13 +- .../Slimefun/ancient_altar/Pedestals.java | 4 +- .../Slimefun/api/PlayerProfile.java | 18 +- .../Slimefun/api/item_transport/CargoNet.java | 55 +++-- .../{CargoManager.java => CargoUtils.java} | 188 +++++++++--------- .../api/item_transport/ChannelIndex.java | 25 --- .../item_transport/ChestTerminalSorter.java | 12 -- .../{StoredItem.java => ItemAndInt.java} | 16 +- .../Slimefun/api/item_transport/ItemSlot.java | 23 --- .../Slimefun/utils/MachineTier.java | 28 --- .../Slimefun/utils/MachineType.java | 21 -- src/main/resources/languages/messages_en.yml | 23 ++- 53 files changed, 454 insertions(+), 441 deletions(-) create mode 100644 src/main/java/io/github/thebusybiscuit/slimefun4/api/events/PlayerLanguageChangeEvent.java rename src/main/java/{me/mrCookieSlime/Slimefun/api/inventory/BackpackInventory.java => io/github/thebusybiscuit/slimefun4/api/player/PlayerBackpack.java} (89%) create mode 100644 src/main/java/io/github/thebusybiscuit/slimefun4/core/attributes/RecipeDisplayItem.java rename src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/{machines => blocks}/AncientPedestal.java (94%) rename src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/{machines => blocks}/HologramProjector.java (95%) rename src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/{machines => blocks}/InfusedHopper.java (92%) rename src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/{machines => blocks}/ReactorAccessPort.java (99%) create mode 100644 src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/RepairedSpawner.java rename src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/{machines => blocks}/TrashCan.java (96%) delete mode 100644 src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/RecipeDisplayItem.java rename src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/{CargoManager.java => CargoUtils.java} (63%) delete mode 100644 src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ChannelIndex.java delete mode 100644 src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ChestTerminalSorter.java rename src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/{StoredItem.java => ItemAndInt.java} (50%) delete mode 100644 src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ItemSlot.java delete mode 100644 src/main/java/me/mrCookieSlime/Slimefun/utils/MachineTier.java delete mode 100644 src/main/java/me/mrCookieSlime/Slimefun/utils/MachineType.java diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/api/events/PlayerLanguageChangeEvent.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/events/PlayerLanguageChangeEvent.java new file mode 100644 index 000000000..4b6eb6d11 --- /dev/null +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/events/PlayerLanguageChangeEvent.java @@ -0,0 +1,43 @@ +package io.github.thebusybiscuit.slimefun4.api.events; + +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +import io.github.thebusybiscuit.slimefun4.core.services.localization.Language; + +public class PlayerLanguageChangeEvent extends Event { + + private static final HandlerList handlers = new HandlerList(); + + private final Player player; + private final Language from; + private final Language to; + + public PlayerLanguageChangeEvent(Player p, Language from, Language to) { + player = p; + this.from = from; + this.to = to; + } + + public static HandlerList getHandlerList() { + return handlers; + } + + public HandlerList getHandlers() { + return handlers; + } + + public Player getPlayer() { + return player; + } + + public Language getPreviousLanguage() { + return from; + } + + public Language getNewLanguage() { + return to; + } + +} diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/GPSNetwork.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/GPSNetwork.java index 7d199c5b2..aefbdb700 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/GPSNetwork.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/gps/GPSNetwork.java @@ -81,20 +81,20 @@ public class GPSNetwork { } public void openTransmitterControlPanel(Player p) { - ChestMenu menu = new ChestMenu("&9Control Panel"); + ChestMenu menu = new ChestMenu(ChatColor.BLUE + SlimefunPlugin.getLocal().getMessage(p, "machines.GPS_CONTROL_PANEL.title")); for (int slot : border) { menu.addItem(slot, ChestMenuUtils.getBackground(), ChestMenuUtils.getEmptyClickHandler()); } - menu.addItem(2, new CustomItem(SlimefunItems.GPS_TRANSMITTER, "&7Transmitter Overview &e(Selected)")); + menu.addItem(2, new CustomItem(SlimefunItems.GPS_TRANSMITTER, "&7" + SlimefunPlugin.getLocal().getMessage(p, "machines.GPS_CONTROL_PANEL.transmitters"))); menu.addMenuClickHandler(2, ChestMenuUtils.getEmptyClickHandler()); int complexity = getNetworkComplexity(p.getUniqueId()); menu.addItem(4, new CustomItem(SlimefunItems.GPS_CONTROL_PANEL, "&7Network Info", "", "&8\u21E8 &7Status: " + (complexity > 0 ? "&2&lONLINE": "&4&lOFFLINE"), "&8\u21E8 &7Complexity: &r" + complexity)); menu.addMenuClickHandler(4, ChestMenuUtils.getEmptyClickHandler()); - menu.addItem(6, new CustomItem(worldIcon, "&7Waypoint Overview &r(Select)")); + menu.addItem(6, new CustomItem(worldIcon, "&7" + SlimefunPlugin.getLocal().getMessage(p, "machines.GPS_CONTROL_PANEL.waypoints"), "", ChatColor.GRAY + "\u21E8 " + SlimefunPlugin.getLocal().getMessage(p, "guide.tooltips.open-category"))); menu.addMenuClickHandler(6, (pl, slot, item, action) -> { openWaypointControlPanel(pl); return false; @@ -136,13 +136,13 @@ public class GPSNetwork { } public void openWaypointControlPanel(Player p) { - ChestMenu menu = new ChestMenu("&9Control Panel"); + ChestMenu menu = new ChestMenu(ChatColor.BLUE + SlimefunPlugin.getLocal().getMessage(p, "machines.GPS_CONTROL_PANEL.title")); for (int slot : border) { menu.addItem(slot, ChestMenuUtils.getBackground(), ChestMenuUtils.getEmptyClickHandler()); } - menu.addItem(2, new CustomItem(SlimefunItems.GPS_TRANSMITTER, "&7Transmitter Overview &r(Select)")); + menu.addItem(2, new CustomItem(SlimefunItems.GPS_TRANSMITTER, "&7" + SlimefunPlugin.getLocal().getMessage(p, "machines.GPS_CONTROL_PANEL.transmitters"), "", ChatColor.GRAY + "\u21E8 " + SlimefunPlugin.getLocal().getMessage(p, "guide.tooltips.open-category"))); menu.addMenuClickHandler(2, (pl, slot, item, action) -> { openTransmitterControlPanel(pl); return false; @@ -152,7 +152,7 @@ public class GPSNetwork { menu.addItem(4, new CustomItem(SlimefunItems.GPS_CONTROL_PANEL, "&7Network Info", "", "&8\u21E8 &7Status: " + (complexity > 0 ? "&2&lONLINE": "&4&lOFFLINE"), "&8\u21E8 &7Complexity: &r" + complexity)); menu.addMenuClickHandler(4, ChestMenuUtils.getEmptyClickHandler()); - menu.addItem(6, new CustomItem(worldIcon, "&7Waypoint Overview &e(Selected)")); + menu.addItem(6, new CustomItem(worldIcon, "&7" + SlimefunPlugin.getLocal().getMessage(p, "machines.GPS_CONTROL_PANEL.waypoints"))); menu.addMenuClickHandler(6, ChestMenuUtils.getEmptyClickHandler()); int index = 0; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BackpackInventory.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/player/PlayerBackpack.java similarity index 89% rename from src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BackpackInventory.java rename to src/main/java/io/github/thebusybiscuit/slimefun4/api/player/PlayerBackpack.java index f49aa1dec..1bb2f51e0 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/inventory/BackpackInventory.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/player/PlayerBackpack.java @@ -1,4 +1,4 @@ -package me.mrCookieSlime.Slimefun.api.inventory; +package io.github.thebusybiscuit.slimefun4.api.player; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -7,7 +7,7 @@ import org.bukkit.inventory.Inventory; import io.github.thebusybiscuit.cscorelib2.config.Config; import me.mrCookieSlime.Slimefun.api.PlayerProfile; -public class BackpackInventory { +public class PlayerBackpack { private final PlayerProfile profile; private final int id; @@ -19,7 +19,7 @@ public class BackpackInventory { /** * This constructor loads an existing Backpack */ - public BackpackInventory(PlayerProfile profile, int id) { + public PlayerBackpack(PlayerProfile profile, int id) { this(profile, id, profile.getConfig().getInt("backpacks." + id + ".size")); for (int i = 0; i < size; i++) { @@ -30,7 +30,7 @@ public class BackpackInventory { /** * This constructor creates a new Backpack */ - public BackpackInventory(PlayerProfile profile, int id, int size) { + public PlayerBackpack(PlayerProfile profile, int id, int size) { this.profile = profile; this.id = id; this.cfg = profile.getConfig(); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/attributes/RecipeDisplayItem.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/attributes/RecipeDisplayItem.java new file mode 100644 index 000000000..4f4c572d5 --- /dev/null +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/attributes/RecipeDisplayItem.java @@ -0,0 +1,21 @@ +package io.github.thebusybiscuit.slimefun4.core.attributes; + +import java.util.List; + +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import me.mrCookieSlime.Slimefun.SlimefunPlugin; + +public interface RecipeDisplayItem { + + List getDisplayRecipes(); + + default String getLabelLocalPath() { + return "guide.tooltips.recipes.machine"; + } + + default String getRecipeSectionLabel(Player p) { + return "&7\u21E9 " + SlimefunPlugin.getLocal().getMessage(p, getLabelLocalPath()) + " \u21E9"; + } +} diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/commands/subcommands/ResearchCommand.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/commands/subcommands/ResearchCommand.java index 785c2e933..0477bb332 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/commands/subcommands/ResearchCommand.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/commands/subcommands/ResearchCommand.java @@ -40,32 +40,16 @@ public class ResearchCommand extends SubCommand { if (player.isPresent()) { Player p = player.get(); + // Getting the PlayerProfile async PlayerProfile.get(p, profile -> { if (args[2].equalsIgnoreCase("all")) { - for (Research res : SlimefunPlugin.getRegistry().getResearches()) { - if (!profile.hasUnlocked(res)) { - SlimefunPlugin.getLocal().sendMessage(sender, "messages.give-research", true, msg -> msg.replace(PLACEHOLDER_PLAYER, p.getName()).replace(PLACEHOLDER_RESEARCH, res.getName(p))); - } - - res.unlock(p, true); - } + researchAll(sender, profile, p); } else if (args[2].equalsIgnoreCase("reset")) { - for (Research res : SlimefunPlugin.getRegistry().getResearches()) { - profile.setResearched(res, false); - } - SlimefunPlugin.getLocal().sendMessage(p, "commands.research.reset", true, msg -> msg.replace(PLACEHOLDER_PLAYER, args[1])); + reset(sender, profile, p); } else { - Optional research = getResearchFromString(args[2]); - - if (research.isPresent()) { - research.get().unlock(p, true); - SlimefunPlugin.getLocal().sendMessage(sender, "messages.give-research", true, msg -> msg.replace(PLACEHOLDER_PLAYER, p.getName()).replace(PLACEHOLDER_RESEARCH, research.get().getName(p))); - } - else { - SlimefunPlugin.getLocal().sendMessage(sender, "messages.not-valid-research", true, msg -> msg.replace(PLACEHOLDER_RESEARCH, args[2])); - } + giveResearch(sender, profile, p, args[2]); } }); } @@ -80,6 +64,36 @@ public class ResearchCommand extends SubCommand { } } + private void giveResearch(CommandSender sender, PlayerProfile profile, Player p, String input) { + Optional research = getResearchFromString(input); + + if (research.isPresent()) { + research.get().unlock(p, true); + SlimefunPlugin.getLocal().sendMessage(sender, "messages.give-research", true, msg -> msg.replace(PLACEHOLDER_PLAYER, p.getName()).replace(PLACEHOLDER_RESEARCH, research.get().getName(p))); + } + else { + SlimefunPlugin.getLocal().sendMessage(sender, "messages.not-valid-research", true, msg -> msg.replace(PLACEHOLDER_RESEARCH, input)); + } + } + + private void researchAll(CommandSender sender, PlayerProfile profile, Player p) { + for (Research res : SlimefunPlugin.getRegistry().getResearches()) { + if (!profile.hasUnlocked(res)) { + SlimefunPlugin.getLocal().sendMessage(sender, "messages.give-research", true, msg -> msg.replace(PLACEHOLDER_PLAYER, p.getName()).replace(PLACEHOLDER_RESEARCH, res.getName(p))); + } + + res.unlock(p, true); + } + } + + private void reset(CommandSender sender, PlayerProfile profile, Player p) { + for (Research res : SlimefunPlugin.getRegistry().getResearches()) { + profile.setResearched(res, false); + } + + SlimefunPlugin.getLocal().sendMessage(p, "commands.research.reset", true, msg -> msg.replace(PLACEHOLDER_PLAYER, p.getName())); + } + private Optional getResearchFromString(String input) { if (!input.contains(":")) return Optional.empty(); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/ChestSlimefunGuide.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/ChestSlimefunGuide.java index aeb9dbd32..60baf4ccf 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/ChestSlimefunGuide.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/ChestSlimefunGuide.java @@ -22,6 +22,7 @@ import io.github.thebusybiscuit.cscorelib2.chat.ChatInput; import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.cscorelib2.recipes.MinecraftRecipe; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import io.github.thebusybiscuit.slimefun4.utils.ChatUtils; import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu; @@ -34,7 +35,6 @@ import me.mrCookieSlime.Slimefun.Objects.LockedCategory; import me.mrCookieSlime.Slimefun.Objects.Research; import me.mrCookieSlime.Slimefun.Objects.SeasonalCategory; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.MultiBlockMachine; import me.mrCookieSlime.Slimefun.api.GuideHandler; import me.mrCookieSlime.Slimefun.api.PlayerProfile; @@ -458,7 +458,7 @@ public class ChestSlimefunGuide implements ISlimefunGuide { ChestMenu menu = create(p); if (item.hasWiki()) { - menu.addItem(8, new CustomItem(Material.KNOWLEDGE_BOOK, "&rView this Item on our Wiki &7(Slimefun Wiki)", "", "&7\u21E8 Click to open")); + menu.addItem(8, new CustomItem(Material.KNOWLEDGE_BOOK, ChatColor.RESET + SlimefunPlugin.getLocal().getMessage("guide.tooltips.wiki"), "", ChatColor.GRAY + "\u21E8 " + ChatColor.GREEN + SlimefunPlugin.getLocal().getMessage(p, "guide.tooltips.open-category"))); menu.addMenuClickHandler(8, (pl, slot, itemstack, action) -> { pl.closeInventory(); ChatUtils.sendURL(pl, item.getWiki()); @@ -581,7 +581,7 @@ public class ChestSlimefunGuide implements ISlimefunGuide { if (page == 0) { for (int i = 27; i < 36; i++) { - menu.replaceExistingItem(i, new CustomItem(ChestMenuUtils.getBackground(), sfItem.getRecipeSectionLabel())); + menu.replaceExistingItem(i, new CustomItem(ChestMenuUtils.getBackground(), sfItem.getRecipeSectionLabel(p))); menu.addMenuClickHandler(i, ChestMenuUtils.getEmptyClickHandler()); } } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/GuideSettings.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/GuideSettings.java index eb6102ed5..766ac35d3 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/GuideSettings.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/guide/GuideSettings.java @@ -19,6 +19,7 @@ import io.github.thebusybiscuit.cscorelib2.chat.ChatColors; import io.github.thebusybiscuit.cscorelib2.data.PersistentDataAPI; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.cscorelib2.skull.SkullItem; +import io.github.thebusybiscuit.slimefun4.api.events.PlayerLanguageChangeEvent; import io.github.thebusybiscuit.slimefun4.core.services.github.Contributor; import io.github.thebusybiscuit.slimefun4.core.services.localization.Language; import io.github.thebusybiscuit.slimefun4.utils.ChatUtils; @@ -282,6 +283,7 @@ public final class GuideSettings { Language defaultLanguage = SlimefunPlugin.getLocal().getDefaultLanguage(); menu.addItem(9, new CustomItem(defaultLanguage.getItem(), ChatColor.GRAY + SlimefunPlugin.getLocal().getMessage(p, "languages.default") + ChatColor.DARK_GRAY + " (" + defaultLanguage.getName(p) + ")", "", "&7\u21E8 &e" + SlimefunPlugin.getLocal().getMessage(p, "guide.languages.select-default")), (pl, i, item, action) -> { + SlimefunPlugin.instance.getServer().getPluginManager().callEvent(new PlayerLanguageChangeEvent(pl, SlimefunPlugin.getLocal().getLanguage(pl), defaultLanguage)); PersistentDataAPI.remove(pl, SlimefunPlugin.getLocal().getKey()); String name = SlimefunPlugin.getLocal().getMessage(p, "languages.default"); @@ -300,6 +302,7 @@ public final class GuideSettings { "", "&7\u21E8 &e" + SlimefunPlugin.getLocal().getMessage(p, "guide.languages.select") ), (pl, i, item, action) -> { + SlimefunPlugin.instance.getServer().getPluginManager().callEvent(new PlayerLanguageChangeEvent(pl, SlimefunPlugin.getLocal().getLanguage(pl), language)); PersistentDataAPI.setString(pl, SlimefunPlugin.getLocal().getKey(), language.getID()); String name = language.getName(pl); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SupportedLanguage.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SupportedLanguage.java index 97579feec..c3f25f5d0 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SupportedLanguage.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SupportedLanguage.java @@ -16,6 +16,7 @@ public enum SupportedLanguage { FINNISH("fi", "59f2349729a7ec8d4b1478adfe5ca8af96479e983fbad238ccbd81409b4ed"), NORWEGIAN("no", "e0596e165ec3f389b59cfdda93dd6e363e97d9c6456e7c2e123973fa6c5fda"), CZECH("cs", "48152b7334d7ecf335e47a4f35defbd2eb6957fc7bfe94212642d62f46e61e"), + ROMANIAN("ro", "dceb1708d5404ef326103e7b60559c9178f3dce729007ac9a0b498bdebe46107"), PORTUGESE_PORTUGAL("pt", "ebd51f4693af174e6fe1979233d23a40bb987398e3891665fafd2ba567b5a53a"), PORTUGESE_BRAZIL("pt-BR", "9a46475d5dcc815f6c5f2859edbb10611f3e861c0eb14f088161b3c0ccb2b0d9"), HUNGARIAN("hu", "4a9c3c4b6c5031332dd2bfece5e31e999f8deff55474065cc86993d7bdcdbd0"), @@ -26,10 +27,13 @@ public enum SupportedLanguage { INDONESIAN("id", "5db2678ccaba7934412cb97ee16d416463a392574c5906352f18dea42895ee"), CHINESE_CHINA("zh-CN", "7f9bc035cdc80f1ab5e1198f29f3ad3fdd2b42d9a69aeb64de990681800b98dc"), CHINESE_TAIWAN("zh-TW", "702a4afb2e1e2e3a1894a8b74272f95cfa994ce53907f9ac140bd3c932f9f"), + JAPANESE("ja", "d640ae466162a47d3ee33c4076df1cab96f11860f07edb1f0832c525a9e33323"), HEBREW("he", "1ba086a2cc7272cf5ba49c80248546c22e5ef1bab54120e8a8e5d9e75b6a"), ARABIC("ar", "a4be759a9cf7f0a19a7e8e62f23789ad1d21cebae38af9d9541676a3db001572"), + PERSIAN("fa", "5cd9badf1972583b663b44b1e027255de8f275aa1e89defcf77782ba6fcc652"), AFRIKAANS("af", "961a1eacc10524d1f45f23b0e487bb2fc33948d9676b418b19a3da0b109d0e3c"), - MALAY("ms", "754b9041dea6db6db44750f1385a743adf653767b4b8802cad4c585dd3f5be46"); + MALAY("ms", "754b9041dea6db6db44750f1385a743adf653767b4b8802cad4c585dd3f5be46"), + THAI("th", "2a7916e4a852f7e6f3f3de19c7fb57686a37bce834bd54684a7dbef8d53fb"); private final String id; private final String textureHash; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/android/ProgrammableAndroid.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/android/ProgrammableAndroid.java index 9927791cc..10746883d 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/android/ProgrammableAndroid.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/android/ProgrammableAndroid.java @@ -10,7 +10,6 @@ import java.util.List; import java.util.Optional; import java.util.Set; import java.util.function.Predicate; -import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -37,6 +36,8 @@ import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.cscorelib2.skull.SkullBlock; import io.github.thebusybiscuit.cscorelib2.skull.SkullItem; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; +import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import io.github.thebusybiscuit.slimefun4.utils.NumberUtils; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler; @@ -51,11 +52,9 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineFuel; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.InventoryBlock; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; -import me.mrCookieSlime.Slimefun.api.Slimefun; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; @@ -217,8 +216,8 @@ public abstract class ProgrammableAndroid extends SimpleSlimefunItem false); + preset.addItem(i, new CustomItem(new ItemStack(Material.GRAY_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler()); } for (int i : border_out) { - preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "), (p, slot, item, action) -> false); + preset.addItem(i, new CustomItem(new ItemStack(Material.ORANGE_STAINED_GLASS_PANE), " "), ChestMenuUtils.getEmptyClickHandler()); } for (int i : getOutputSlots()) { @@ -497,20 +496,22 @@ public abstract class ProgrammableAndroid extends SimpleSlimefunItem false); + preset.addItem(34, new CustomItem(generator, "&8\u21E9 &cFuel Input &8\u21E9", "", "&rThis Android runs on solid Fuel", "&re.g. Coal, Wood, etc..."), ChestMenuUtils.getEmptyClickHandler()); } - else if (getTier() == 2){ - preset.addItem(34, new CustomItem(SkullItem.fromBase64("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&8\u21E9 &cFuel Input &8\u21E9", "", "&rThis Android runs on liquid Fuel", "&re.g. Lava, Oil, Fuel, etc..."), (p, slot, item, action) -> false); + else if (getTier() == 2) { + preset.addItem(34, new CustomItem(generator, "&8\u21E9 &cFuel Input &8\u21E9", "", "&rThis Android runs on liquid Fuel", "&re.g. Lava, Oil, Fuel, etc..."), ChestMenuUtils.getEmptyClickHandler()); } else { - preset.addItem(34, new CustomItem(SkullItem.fromBase64("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTM0M2NlNThkYTU0Yzc5OTI0YTJjOTMzMWNmYzQxN2ZlOGNjYmJlYTliZTQ1YTdhYzg1ODYwYTZjNzMwIn19fQ=="), "&8\u21E9 &cFuel Input &8\u21E9", "", "&rThis Android runs on radioactive Fuel", "&re.g. Uranium, Neptunium or Boosted Uranium"), (p, slot, item, action) -> false); + preset.addItem(34, new CustomItem(generator, "&8\u21E9 &cFuel Input &8\u21E9", "", "&rThis Android runs on radioactive Fuel", "&re.g. Uranium, Neptunium or Boosted Uranium"), ChestMenuUtils.getEmptyClickHandler()); } } public void openScriptEditor(Player p, Block b) { - ChestMenu menu = new ChestMenu("&eScript Editor"); + ChestMenu menu = new ChestMenu(ChatColor.DARK_AQUA + SlimefunPlugin.getLocal().getMessage(p, "android.scripts.editor")); menu.addItem(1, new CustomItem(SkullItem.fromBase64("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDliZjZkYjRhZWRhOWQ4ODIyYjlmNzM2NTM4ZThjMThiOWE0ODQ0Zjg0ZWI0NTUwNGFkZmJmZWU4N2ViIn19fQ=="), "&2> Edit Script", "", "&aEdits your current Script")); menu.addMenuClickHandler(1, (pl, slot, item, action) -> { @@ -540,7 +541,7 @@ public abstract class ProgrammableAndroid extends SimpleSlimefunItem false); - } + ChestMenuUtils.drawBackground(menu, 0, 1, 2, 3, 4, 5, 6, 7, 8); - try { - menu.addItem(9, new CustomItem(SkullItem.fromBase64("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTYxMzlmZDFjNTY1NGU1NmU5ZTRlMmM4YmU3ZWIyYmQ1YjQ5OWQ2MzM2MTY2NjNmZWVlOTliNzQzNTJhZDY0In19fQ=="), "&rDo nothing"), (pl, slot, item, action) -> { - int i = 0; - StringBuilder builder = new StringBuilder("START-"); + menu.addItem(9, new CustomItem(SkullItem.fromBase64("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTYxMzlmZDFjNTY1NGU1NmU5ZTRlMmM4YmU3ZWIyYmQ1YjQ5OWQ2MzM2MTY2NjNmZWVlOTliNzQzNTJhZDY0In19fQ=="), "&rDo nothing"), (pl, slot, item, action) -> { + int i = 0; + StringBuilder builder = new StringBuilder("START-"); - for (String command : commands) { - if (i != index && i > 0 && i < commands.length - 1) builder.append(command + "-"); - i++; - } + for (String command : commands) { + if (i != index && i > 0 && i < commands.length - 1) builder.append(command + "-"); + i++; + } - builder.append("REPEAT"); - BlockStorage.addBlockInfo(b, "script", builder.toString()); + builder.append("REPEAT"); + BlockStorage.addBlockInfo(b, "script", builder.toString()); - openScript(p, b, builder.toString()); - return false; - }); - } - catch (Exception x) { - Slimefun.getLogger().log(Level.SEVERE, "An Error occured while creating the Script Editor for Slimefun " + SlimefunPlugin.getVersion(), x); - } + openScript(p, b, builder.toString()); + return false; + }); int i = 10; for (ScriptPart part : getAccessibleScriptParts()) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CoolerListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CoolerListener.java index 09622812b..6b6801ad4 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CoolerListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/CoolerListener.java @@ -11,11 +11,11 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.potion.PotionEffect; +import io.github.thebusybiscuit.slimefun4.api.player.PlayerBackpack; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.PlayerProfile; -import me.mrCookieSlime.Slimefun.api.inventory.BackpackInventory; public class CoolerListener implements Listener { @@ -30,7 +30,7 @@ public class CoolerListener implements Listener { for (ItemStack item : p.getInventory().getContents()) { if (SlimefunManager.isItemSimilar(item, SlimefunItems.COOLER, false)) { - BackpackInventory backpack = PlayerProfile.getBackpack(item); + PlayerBackpack backpack = PlayerProfile.getBackpack(item); if (backpack != null) { Inventory inv = backpack.getInventory(); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MultiBlockListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MultiBlockListener.java index 33a930b6c..d502c1f95 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MultiBlockListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/MultiBlockListener.java @@ -68,19 +68,10 @@ public class MultiBlockListener implements Listener { } protected boolean compareMaterialsVertical(Block b, Material top, Material center, Material bottom) { - if (center != null && !equals(b.getType(), center)) { - return false; - } - - if (top != null && !equals(b.getRelative(BlockFace.UP).getType(), top)) { - return false; - } - - if (bottom != null && !equals(b.getRelative(BlockFace.DOWN).getType(), bottom)) { - return false; - } - - return true; + return + (center == null || equals(b.getType(), center)) && + (top == null || equals(b.getRelative(BlockFace.UP).getType(), top)) && + (bottom == null || equals(b.getRelative(BlockFace.DOWN).getType(), bottom)); } private boolean equals(Material a, Material b) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TalismanListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TalismanListener.java index 094d476a9..3c8cedb5b 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TalismanListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TalismanListener.java @@ -2,6 +2,7 @@ package io.github.thebusybiscuit.slimefun4.implementation.listeners; import java.util.ArrayList; import java.util.Collection; +import java.util.LinkedList; import java.util.List; import java.util.Random; import java.util.Set; @@ -42,6 +43,8 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class TalismanListener implements Listener { + private final int[] armorSlots = {39, 38, 37, 36}; + public TalismanListener(SlimefunPlugin plugin) { plugin.getServer().getPluginManager().registerEvents(this, plugin); } @@ -71,8 +74,6 @@ public class TalismanListener implements Listener { } } - private final int[] armorSlots = {39, 38, 37, 36}; - @EventHandler public void onItemBreak(PlayerItemBreakEvent e) { if (Talisman.checkFor(e, (SlimefunItemStack) SlimefunItems.TALISMAN_ANVIL)) { @@ -115,7 +116,8 @@ public class TalismanListener implements Listener { Random random = ThreadLocalRandom.current(); if (Talisman.checkFor(e, (SlimefunItemStack) SlimefunItems.TALISMAN_MAGICIAN)) { - List enchantments = new ArrayList<>(); + List enchantments = new LinkedList<>(); + for (Enchantment en : Enchantment.values()) { for (int i = 1; i <= en.getMaxLevel(); i++) { if ((boolean) Slimefun.getItemValue("MAGICIAN_TALISMAN", "allow-enchantments." + en.getKey().getKey() + ".level." + i) && en.canEnchantItem(e.getItem())) { @@ -123,19 +125,21 @@ public class TalismanListener implements Listener { } } } + String enchant = enchantments.get(random.nextInt(enchantments.size())); e.getEnchantsToAdd().put(Enchantment.getByKey(NamespacedKey.minecraft(enchant.split("-")[0])), Integer.parseInt(enchant.split("-")[1])); } if (!e.getEnchantsToAdd().containsKey(Enchantment.SILK_TOUCH) && Enchantment.LOOT_BONUS_BLOCKS.canEnchantItem(e.getItem()) && Talisman.checkFor(e, (SlimefunItemStack) SlimefunItems.TALISMAN_WIZARD)) { - if (e.getEnchantsToAdd().containsKey(Enchantment.LOOT_BONUS_BLOCKS)) e.getEnchantsToAdd().remove(Enchantment.LOOT_BONUS_BLOCKS); Set enchantments = e.getEnchantsToAdd().keySet(); for (Enchantment en : enchantments) { - if (random.nextInt(100) < 40) e.getEnchantsToAdd().put(en, random.nextInt(3) + 1); + if (random.nextInt(100) < 40) { + e.getEnchantsToAdd().put(en, random.nextInt(3) + 1); + } } - e.getItem().addUnsafeEnchantment(Enchantment.LOOT_BONUS_BLOCKS, random.nextInt(3) + 3); + e.getEnchantsToAdd().put(Enchantment.LOOT_BONUS_BLOCKS, random.nextInt(3) + 3); } } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TeleporterListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TeleporterListener.java index 04d769363..3509e087e 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TeleporterListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/TeleporterListener.java @@ -34,11 +34,7 @@ public class TeleporterListener implements Listener { if (id.equals("GPS_ACTIVATION_DEVICE_SHARED") || (id.equals("GPS_ACTIVATION_DEVICE_PERSONAL") && BlockStorage.getLocationInfo(e.getClickedBlock().getLocation(), "owner").equals(e.getPlayer().getUniqueId().toString()))) { SlimefunItem teleporter = BlockStorage.check(e.getClickedBlock().getRelative(BlockFace.DOWN)); - if (teleporter instanceof Teleporter) { - for (BlockFace face : faces) { - if (!BlockStorage.check(e.getClickedBlock().getRelative(BlockFace.DOWN).getRelative(face), "GPS_TELEPORTER_PYLON")) return; - } - + if (teleporter instanceof Teleporter && checkForPylons(e.getClickedBlock().getRelative(BlockFace.DOWN))) { Block block = e.getClickedBlock().getRelative(BlockFace.DOWN); UUID owner = UUID.fromString(BlockStorage.getLocationInfo(block.getLocation(), "owner")); SlimefunPlugin.getGPSNetwork().getTeleleportationService().openTeleporterGUI(e.getPlayer(), owner, block, SlimefunPlugin.getGPSNetwork().getNetworkComplexity(owner)); @@ -49,4 +45,14 @@ public class TeleporterListener implements Listener { } } + private boolean checkForPylons(Block teleporter) { + for (BlockFace face : faces) { + if (!BlockStorage.check(teleporter.getRelative(face), "GPS_TELEPORTER_PYLON")) { + return false; + } + } + + return true; + } + } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java index db3443540..95ab6ce8e 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java @@ -16,8 +16,6 @@ import org.bukkit.Sound; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Chest; -import org.bukkit.block.CreatureSpawner; -import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; @@ -62,6 +60,12 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SoulboundItem; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.Talisman; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.VanillaItem; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks.AncientPedestal; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks.HologramProjector; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks.InfusedHopper; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks.ReactorAccessPort; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks.RepairedSpawner; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks.TrashCan; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.cargo.AdvancedCargoOutputNode; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.cargo.CargoConnector; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.cargo.CargoInputNode; @@ -110,15 +114,10 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.TelepositionScroll; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.Vitamins; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.WaterStaff; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.items.WindStaff; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.AncientPedestal; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.BlockPlacer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Composter; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Crucible; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.EnhancedFurnace; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.HologramProjector; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.InfusedHopper; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ReactorAccessPort; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.TrashCan; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.AnimalGrowthAccelerator; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.AutoAnvil; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric.AutoBreeder; @@ -175,7 +174,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.OreWasher; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.PressureChamber; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.Smeltery; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.multiblocks.TableSaw; -import me.mrCookieSlime.Slimefun.Objects.handlers.BlockPlaceHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemUseHandler; import me.mrCookieSlime.Slimefun.Objects.handlers.MultiBlockInteractionHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; @@ -1298,30 +1296,9 @@ public final class SlimefunItemSetup { new ItemStack[] {null, null, null, null, new ItemStack(Material.SPAWNER), null, null, null, null}) .register(true); - new SlimefunItem(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.REPAIRED_SPAWNER, RecipeType.ANCIENT_ALTAR, + new RepairedSpawner(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.REPAIRED_SPAWNER, RecipeType.ANCIENT_ALTAR, new ItemStack[] {SlimefunItems.RUNE_ENDER, SlimefunItems.FILLED_FLASK_OF_KNOWLEDGE, SlimefunItems.ESSENCE_OF_AFTERLIFE, SlimefunItems.FILLED_FLASK_OF_KNOWLEDGE, SlimefunItems.BROKEN_SPAWNER, SlimefunItems.FILLED_FLASK_OF_KNOWLEDGE, SlimefunItems.ESSENCE_OF_AFTERLIFE, SlimefunItems.FILLED_FLASK_OF_KNOWLEDGE, SlimefunItems.RUNE_ENDER}) - .register(true, (BlockPlaceHandler) (e, item) -> { - if (SlimefunManager.isItemSimilar(item, SlimefunItems.REPAIRED_SPAWNER, false)) { - EntityType type = null; - - for (String line: item.getItemMeta().getLore()) { - if (ChatColor.stripColor(line).startsWith("Type: ") && !line.contains("")) { - type = EntityType.valueOf(ChatColor.stripColor(line).replace("Type: ", "").replace(' ', '_').toUpperCase()); - } - } - - if (type != null) { - CreatureSpawner spawner = (CreatureSpawner) e.getBlock().getState(); - spawner.setSpawnedType(type); - spawner.update(true, false); - } - - return true; - } - else { - return false; - } - }); + .register(true); new EnhancedFurnace(1, 1, 1, (SlimefunItemStack) SlimefunItems.ENHANCED_FURNACE, new ItemStack[] {null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.BASIC_CIRCUIT_BOARD, new ItemStack(Material.FURNACE), SlimefunItems.HEATING_COIL, null, SlimefunItems.ELECTRIC_MOTOR, null}) diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java index 8cb2b68d4..db0c6c225 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/SlimefunMachine.java @@ -9,10 +9,10 @@ import org.bukkit.Material; import org.bukkit.block.BlockFace; import org.bukkit.inventory.ItemStack; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.MultiBlock; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class SlimefunMachine extends SlimefunItem implements RecipeDisplayItem { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java index 44ff9521a..500855c1f 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AGenerator.java @@ -19,6 +19,7 @@ import io.github.thebusybiscuit.cscorelib2.chat.ChatColors; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler; import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import io.github.thebusybiscuit.slimefun4.utils.NumberUtils; import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; @@ -29,7 +30,6 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; @@ -246,8 +246,8 @@ public abstract class AGenerator extends SlimefunItem implements RecipeDisplayIt } @Override - public String getRecipeSectionLabel() { - return "&7\u21E9 Available Types of Fuel \u21E9"; + public String getLabelLocalPath() { + return "guide.tooltips.recipes.generator"; } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java index 7bd3e62f7..d06a1ae0b 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/abstractItems/AReactor.java @@ -21,6 +21,7 @@ import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler; import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction; import io.github.thebusybiscuit.cscorelib2.skull.SkullItem; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import io.github.thebusybiscuit.slimefun4.utils.holograms.ReactorHologram; import io.github.thebusybiscuit.slimefun4.utils.holograms.SimpleHologram; @@ -30,8 +31,7 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ReactorAccessPort; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks.ReactorAccessPort; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.Slimefun; @@ -407,8 +407,8 @@ public abstract class AReactor extends SlimefunItem implements RecipeDisplayItem } @Override - public String getRecipeSectionLabel() { - return "&7\u21E9 Available Types of Fuel \u21E9"; + public String getLabelLocalPath() { + return "guide.tooltips.recipes.generator"; } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AncientPedestal.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/AncientPedestal.java similarity index 94% rename from src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AncientPedestal.java rename to src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/AncientPedestal.java index 146cbf9d1..58446246b 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/AncientPedestal.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/AncientPedestal.java @@ -1,4 +1,4 @@ -package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks; import org.bukkit.entity.Item; import org.bukkit.inventory.ItemStack; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HologramProjector.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/HologramProjector.java similarity index 95% rename from src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HologramProjector.java rename to src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/HologramProjector.java index d4b9cf648..d8d84dc35 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/HologramProjector.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/HologramProjector.java @@ -1,4 +1,4 @@ -package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks; import org.bukkit.Location; import org.bukkit.Material; @@ -47,11 +47,6 @@ public class HologramProjector extends SimpleSlimefunItem { } }); } - - @Override - protected boolean areItemHandlersPrivate() { - return false; - } @Override public BlockUseHandler getItemHandler() { @@ -68,7 +63,7 @@ public class HologramProjector extends SimpleSlimefunItem { } private void openEditor(Player p, Block projector) { - ChestMenu menu = new ChestMenu("Hologram Settings"); + ChestMenu menu = new ChestMenu(SlimefunPlugin.getLocal().getMessage(p, "machines.HOLOGRAM_PROJECTOR.inventory-title")); menu.addItem(0, new CustomItem(Material.NAME_TAG, "&7Text &e(Click to edit)", "", "&r" + ChatColors.color(BlockStorage.getLocationInfo(projector.getLocation(), "text")))); menu.addMenuClickHandler(0, (pl, slot, item, action) -> { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/InfusedHopper.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/InfusedHopper.java similarity index 92% rename from src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/InfusedHopper.java rename to src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/InfusedHopper.java index 9603ed883..5df661a05 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/InfusedHopper.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/InfusedHopper.java @@ -1,4 +1,4 @@ -package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks; import org.bukkit.Location; import org.bukkit.Material; @@ -24,11 +24,6 @@ public class InfusedHopper extends SimpleSlimefunItem { super(category, item, recipeType, recipe); } - @Override - protected boolean areItemHandlersPrivate() { - return false; - } - @Override public BlockTicker getItemHandler() { return new BlockTicker() { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/ReactorAccessPort.java similarity index 99% rename from src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java rename to src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/ReactorAccessPort.java index 524fb4abb..b8789ad44 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/ReactorAccessPort.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/ReactorAccessPort.java @@ -1,4 +1,4 @@ -package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks; import org.bukkit.Location; import org.bukkit.Material; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/RepairedSpawner.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/RepairedSpawner.java new file mode 100644 index 000000000..18f33906b --- /dev/null +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/RepairedSpawner.java @@ -0,0 +1,55 @@ +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks; + +import java.util.Locale; + +import org.bukkit.ChatColor; +import org.bukkit.block.CreatureSpawner; +import org.bukkit.entity.EntityType; +import org.bukkit.inventory.ItemStack; + +import me.mrCookieSlime.Slimefun.Lists.RecipeType; +import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; +import me.mrCookieSlime.Slimefun.Objects.Category; +import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; +import me.mrCookieSlime.Slimefun.Objects.handlers.BlockPlaceHandler; +import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; +import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; + +public class RepairedSpawner extends SimpleSlimefunItem { + + public RepairedSpawner(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); + } + + @Override + protected boolean areItemHandlersPrivate() { + return false; + } + + @Override + public BlockPlaceHandler getItemHandler() { + return (e, item) -> { + if (SlimefunManager.isItemSimilar(item, SlimefunItems.REPAIRED_SPAWNER, false)) { + EntityType type = null; + + for (String line : item.getItemMeta().getLore()) { + if (ChatColor.stripColor(line).startsWith("Type: ") && !line.contains("")) { + type = EntityType.valueOf(ChatColor.stripColor(line).replace("Type: ", "").replace(' ', '_').toUpperCase(Locale.ROOT)); + } + } + + if (type != null) { + CreatureSpawner spawner = (CreatureSpawner) e.getBlock().getState(); + spawner.setSpawnedType(type); + spawner.update(true, false); + } + + return true; + } + else { + return false; + } + }; + } + +} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/TrashCan.java similarity index 96% rename from src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java rename to src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/TrashCan.java index cdb975fa2..67530b1ba 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/TrashCan.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/blocks/TrashCan.java @@ -1,4 +1,4 @@ -package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines; +package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks; import org.bukkit.Material; import org.bukkit.block.Block; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/DamageableItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/DamageableItem.java index b8c040ed3..156f92b33 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/DamageableItem.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/DamageableItem.java @@ -13,7 +13,7 @@ public interface DamageableItem { boolean isDamageable(); default void damageItem(Player p, ItemStack item) { - if (item != null && item.getType() != Material.AIR && item.getAmount() > 0 && isDamageable()) { + if (isDamageable() && item != null && item.getType() != Material.AIR && item.getAmount() > 0) { if (item.getEnchantments().containsKey(Enchantment.DURABILITY) && Math.random() * 100 <= (60 + Math.floorDiv(40, (item.getEnchantmentLevel(Enchantment.DURABILITY) + 1)))) { return; } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/RecipeDisplayItem.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/RecipeDisplayItem.java deleted file mode 100644 index 125eea8cd..000000000 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/interfaces/RecipeDisplayItem.java +++ /dev/null @@ -1,21 +0,0 @@ -package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces; - -import java.util.List; - -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -@FunctionalInterface -public interface RecipeDisplayItem { - - List getDisplayRecipes(); - - @Deprecated - default String getRecipeSectionLabel() { - return "&7\u21E9 Recipes made in this Machine \u21E9"; - } - - default String getRecipeSectionLabel(Player p) { - return getRecipeSectionLabel(); - } -} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GoldPan.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GoldPan.java index 583f3224a..65d4c1d55 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GoldPan.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/GoldPan.java @@ -11,12 +11,12 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.collections.RandomizedSet; import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemUseHandler; import me.mrCookieSlime.Slimefun.api.Slimefun; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; @@ -54,6 +54,11 @@ public class GoldPan extends SimpleSlimefunItem implements Recip randomizer.add(item, chance); weights += chance; } + + @Override + public String getLabelLocalPath() { + return "guide.tooltips.recipes.gold-pan"; + } @Override public ItemUseHandler getItemHandler() { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/NetherGoldPan.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/NetherGoldPan.java index e006d5c90..25c82fae4 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/NetherGoldPan.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/items/NetherGoldPan.java @@ -11,11 +11,11 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.collections.RandomizedSet; import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Objects.handlers.ItemUseHandler; import me.mrCookieSlime.Slimefun.api.Slimefun; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; @@ -61,6 +61,11 @@ public class NetherGoldPan extends SimpleSlimefunItem implements weights += chance; } + @Override + public String getLabelLocalPath() { + return "guide.tooltips.recipes.gold-pan"; + } + @Override public ItemUseHandler getItemHandler() { return e -> { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Composter.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Composter.java index 82d33b94e..d9c4e433f 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Composter.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Composter.java @@ -14,11 +14,11 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.materials.MaterialCollections; import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Objects.handlers.BlockUseHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.Slimefun; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Crucible.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Crucible.java index 3f563f6d3..bf445f78c 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Crucible.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/Crucible.java @@ -16,11 +16,11 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.materials.MaterialCollections; import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Objects.handlers.BlockUseHandler; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java index 32cbc8685..e24fa4110 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/AutoDrier.java @@ -9,13 +9,13 @@ import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/CarbonPress.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/CarbonPress.java index 2dade8820..7956c50de 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/CarbonPress.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/CarbonPress.java @@ -4,11 +4,11 @@ import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public abstract class CarbonPress extends AContainer implements RecipeDisplayItem { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricGoldPan.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricGoldPan.java index 7429c5518..7385e7866 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricGoldPan.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricGoldPan.java @@ -9,13 +9,13 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.collections.RandomizedSet; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.Slimefun; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotFactory.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotFactory.java index b5cb120bf..60470c271 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotFactory.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotFactory.java @@ -3,12 +3,12 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public abstract class ElectricIngotFactory extends AContainer implements RecipeDisplayItem { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotPulverizer.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotPulverizer.java index f5763d35e..d2ab6a4f4 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotPulverizer.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricIngotPulverizer.java @@ -6,12 +6,12 @@ import java.util.List; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public class ElectricIngotPulverizer extends AContainer implements RecipeDisplayItem { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricOreGrinder.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricOreGrinder.java index 2a439ad4e..99c035072 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricOreGrinder.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricOreGrinder.java @@ -3,10 +3,10 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public abstract class ElectricOreGrinder extends AContainer implements RecipeDisplayItem { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricPress.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricPress.java index 8d987e557..55fa1f301 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricPress.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/ElectricPress.java @@ -4,12 +4,12 @@ import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public abstract class ElectricPress extends AContainer implements RecipeDisplayItem { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/FoodComposter.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/FoodComposter.java index 4fe004392..27bb6c5bf 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/FoodComposter.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/FoodComposter.java @@ -3,11 +3,11 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.electric; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public abstract class FoodComposter extends AContainer implements RecipeDisplayItem { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Freezer.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Freezer.java index e13a748bd..a3f2aa5ed 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Freezer.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Freezer.java @@ -6,12 +6,12 @@ import java.util.List; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public abstract class Freezer extends AContainer implements RecipeDisplayItem { diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java index b52acf4a2..886b0515d 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/Refinery.java @@ -8,13 +8,13 @@ import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/GEOMiner.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/GEOMiner.java index ff3dc4377..892bdfc9f 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/GEOMiner.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/GEOMiner.java @@ -12,6 +12,7 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.slimefun4.api.geo.GEOResource; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import io.github.thebusybiscuit.slimefun4.utils.holograms.SimpleHologram; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.AdvancedMenuClickHandler; @@ -25,7 +26,6 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.InventoryBlock; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock; @@ -121,8 +121,8 @@ public abstract class GEOMiner extends AContainer implements InventoryBlock, Rec } @Override - public String getRecipeSectionLabel() { - return "&7\u21E9 Resources you can obtain \u21E9"; + public String getLabelLocalPath() { + return "guide.tooltips.recipes.miner"; } @Override diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/OilPump.java b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/OilPump.java index 8e23a67e5..1248fa274 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/OilPump.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Objects/SlimefunItem/machines/electric/geo/OilPump.java @@ -13,6 +13,7 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction; import io.github.thebusybiscuit.slimefun4.api.geo.GEOResource; +import io.github.thebusybiscuit.slimefun4.core.attributes.RecipeDisplayItem; import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Lists.RecipeType; @@ -20,7 +21,6 @@ import me.mrCookieSlime.Slimefun.Lists.SlimefunItems; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer; import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe; -import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.RecipeDisplayItem; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java index c625a8253..e451cd713 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/Setup/SlimefunManager.java @@ -26,7 +26,10 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.VanillaItem; import me.mrCookieSlime.Slimefun.api.SlimefunItemStack; public final class SlimefunManager { - + + private static final String EMERALDENCHANTS_LORE = ChatColor.YELLOW.toString() + ChatColor.YELLOW.toString() + ChatColor.GRAY.toString(); + private static final String SOULBOUND_LORE = ChatColor.GRAY + "Soulbound"; + private SlimefunManager() {} public static void registerArmorSet(ItemStack baseComponent, ItemStack[] items, String idSyntax, PotionEffect[][] effects, boolean special, boolean slimefun) { @@ -166,17 +169,15 @@ public final class SlimefunManager { private static boolean equalsLore(List lore, List lore2) { StringBuilder string1 = new StringBuilder(); StringBuilder string2 = new StringBuilder(); - - String colors = ChatColor.YELLOW.toString() + ChatColor.YELLOW.toString() + ChatColor.GRAY.toString(); for (String string : lore) { - if (!string.equals(ChatColor.GRAY + "Soulbound") && !string.startsWith(colors)) { + if (!string.equals(SOULBOUND_LORE) && !string.startsWith(EMERALDENCHANTS_LORE)) { string1.append("-NEW LINE-").append(string); } } for (String string : lore2) { - if (!string.equals(ChatColor.GRAY + "Soulbound") && !string.startsWith(colors)) { + if (!string.equals(SOULBOUND_LORE) && !string.startsWith(EMERALDENCHANTS_LORE)) { string2.append("-NEW LINE-").append(string); } } @@ -207,7 +208,7 @@ public final class SlimefunManager { } else if (item.hasItemMeta()) { ItemMeta im = item.getItemMeta(); - return (im.hasLore() && im.getLore().contains(ChatColor.GRAY + "Soulbound")); + return (im.hasLore() && im.getLore().equals(SOULBOUND_LORE)); } return false; diff --git a/src/main/java/me/mrCookieSlime/Slimefun/ancient_altar/Pedestals.java b/src/main/java/me/mrCookieSlime/Slimefun/ancient_altar/Pedestals.java index daa448ea2..8a34e9494 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/ancient_altar/Pedestals.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/ancient_altar/Pedestals.java @@ -53,7 +53,9 @@ public final class Pedestals { if (input.size() != 8) return null; if (SlimefunManager.isItemSimilar(catalyst, SlimefunItems.BROKEN_SPAWNER, false)) { - if (checkRecipe(SlimefunItems.BROKEN_SPAWNER, input) == null) return null; + if (checkRecipe(SlimefunItems.BROKEN_SPAWNER, input) == null) { + return null; + } ItemStack spawner = SlimefunItems.REPAIRED_SPAWNER.clone(); ItemMeta im = spawner.getItemMeta(); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/PlayerProfile.java b/src/main/java/me/mrCookieSlime/Slimefun/api/PlayerProfile.java index 43f7d0ea4..4d8f9feb2 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/PlayerProfile.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/PlayerProfile.java @@ -22,9 +22,9 @@ import org.bukkit.inventory.ItemStack; import io.github.thebusybiscuit.cscorelib2.config.Config; import io.github.thebusybiscuit.slimefun4.api.items.HashedArmorpiece; +import io.github.thebusybiscuit.slimefun4.api.player.PlayerBackpack; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Objects.Research; -import me.mrCookieSlime.Slimefun.api.inventory.BackpackInventory; /** * A class that can store a Player's Research Profile for caching @@ -42,7 +42,7 @@ public final class PlayerProfile { private boolean markedForDeletion = false; private final Set researches = new HashSet<>(); - private final Map backpacks = new HashMap<>(); + private final Map backpacks = new HashMap<>(); private final LinkedList guideHistory = new LinkedList<>(); private final HashedArmorpiece[] armor = { @@ -102,7 +102,7 @@ public final class PlayerProfile { * This method will save the Player's Researches and Backpacks to the hard drive */ public void save() { - for (BackpackInventory backpack : backpacks.values()) { + for (PlayerBackpack backpack : backpacks.values()) { backpack.save(); } @@ -164,22 +164,22 @@ public final class PlayerProfile { this.dirty = true; } - public BackpackInventory createBackpack(int size) { + public PlayerBackpack createBackpack(int size) { IntStream stream = IntStream.iterate(0, i -> i + 1).filter(i -> !cfg.contains("backpacks." + i + ".size")); int id = stream.findFirst().getAsInt(); - BackpackInventory backpack = new BackpackInventory(this, id, size); + PlayerBackpack backpack = new PlayerBackpack(this, id, size); backpacks.put(id, backpack); return backpack; } - public BackpackInventory getBackpack(int id) { - BackpackInventory backpack = backpacks.get(id); + public PlayerBackpack getBackpack(int id) { + PlayerBackpack backpack = backpacks.get(id); if (backpack != null) return backpack; else { - backpack = new BackpackInventory(this, id); + backpack = new PlayerBackpack(this, id); backpacks.put(id, backpack); return backpack; } @@ -313,7 +313,7 @@ public final class PlayerProfile { return SlimefunPlugin.getRegistry().getPlayerProfiles().values().iterator(); } - public static BackpackInventory getBackpack(ItemStack item) { + public static PlayerBackpack getBackpack(ItemStack item) { if (item == null || !item.hasItemMeta() || !item.getItemMeta().hasLore()) return null; Optional id = Optional.empty(); diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java b/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java index c8ab691be..8504b89ea 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/CargoNet.java @@ -27,9 +27,9 @@ import io.github.thebusybiscuit.cscorelib2.item.CustomItem; import io.github.thebusybiscuit.cscorelib2.math.DoubleHandler; import io.github.thebusybiscuit.slimefun4.api.network.Network; import io.github.thebusybiscuit.slimefun4.api.network.NetworkComponent; +import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import io.github.thebusybiscuit.slimefun4.utils.holograms.SimpleHologram; import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; -import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler; import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.Setup.SlimefunManager; import me.mrCookieSlime.Slimefun.api.BlockStorage; @@ -44,15 +44,14 @@ public class CargoNet extends Network { private static final int RANGE = 5; - private static final int[] slots = new int[] {19, 20, 21, 28, 29, 30, 37, 38, 39}; + private static final int[] slots = {19, 20, 21, 28, 29, 30, 37, 38, 39}; // Chest Terminal Stuff - public static final int[] terminal_slots = new int[] {0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42}; + public static final int[] terminal_slots = {0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42}; public static final int TERMINAL_OUT_SLOT = 17; private static final ItemStack terminal_noitem_item = new CustomItem(new ItemStack(Material.BARRIER), "&4No Item cached"); - private static final MenuClickHandler terminal_noitem_handler = (p, slot, item, action) -> false; - + private Set inputNodes = new HashSet<>(); private Set outputNodes = new HashSet<>(); @@ -214,7 +213,7 @@ public class CargoNet extends Network { if (menu.getItemInSlot(17) == null) { Block target = getAttachedBlock(bus.getBlock()); - ItemSlot stack = CargoManager.withdraw(bus.getBlock(), target, -1); + ItemAndInt stack = CargoUtils.withdraw(bus.getBlock(), target, -1); if (stack != null) { menu.replaceExistingItem(17, stack.getItem()); @@ -232,7 +231,7 @@ public class CargoNet extends Network { if (menu.getItemInSlot(17) != null) { Block target = getAttachedBlock(bus.getBlock()); - menu.replaceExistingItem(17, CargoManager.insert(bus.getBlock(), target, menu.getItemInSlot(17), -1)); + menu.replaceExistingItem(17, CargoUtils.insert(bus.getBlock(), target, menu.getItemInSlot(17), -1)); } if (menu.getItemInSlot(17) == null) { @@ -276,7 +275,7 @@ public class CargoNet extends Network { for (Location l : destinations) { Block target = getAttachedBlock(l.getBlock()); - requestedItem = CargoManager.insert(l.getBlock(), target, requestedItem, -1); + requestedItem = CargoUtils.insert(l.getBlock(), target, requestedItem, -1); if (requestedItem == null) { menu.replaceExistingItem(request.getSlot(), null); @@ -304,7 +303,7 @@ public class CargoNet extends Network { for (Location l : providers) { Block target = getAttachedBlock(l.getBlock()); - ItemStack is = CargoManager.withdraw(l.getBlock(), target, requested); + ItemStack is = CargoUtils.withdraw(l.getBlock(), target, requested); if (is != null) { if (stack == null) { @@ -355,11 +354,11 @@ public class CargoNet extends Network { boolean roundrobin = "true".equals(cfg.getString("round-robin")); if (inputTarget != null) { - ItemSlot slot = CargoManager.withdraw(input.getBlock(), inputTarget, Integer.parseInt(cfg.getString("index"))); + ItemAndInt slot = CargoUtils.withdraw(input.getBlock(), inputTarget, Integer.parseInt(cfg.getString("index"))); if (slot != null) { stack = slot.getItem(); - previousSlot = slot.getSlot(); + previousSlot = slot.getInt(); } } @@ -389,7 +388,7 @@ public class CargoNet extends Network { Block target = getAttachedBlock(out.getBlock()); if (target != null) { - stack = CargoManager.insert(out.getBlock(), target, stack, -1); + stack = CargoUtils.insert(out.getBlock(), target, stack, -1); if (stack == null) break; } } @@ -397,7 +396,7 @@ public class CargoNet extends Network { } if (stack != null && previousSlot > -1) { - DirtyChestMenu menu = CargoManager.getChestMenu(inputTarget); + DirtyChestMenu menu = CargoUtils.getChestMenu(inputTarget); if (menu != null) { menu.replaceExistingItem(previousSlot, stack); @@ -414,7 +413,7 @@ public class CargoNet extends Network { //Chest Terminal Code if (extraChannels) { - List items = new ArrayList<>(); + List items = new ArrayList<>(); for (Location l : providers) { Block target = getAttachedBlock(l.getBlock()); @@ -436,10 +435,10 @@ public class CargoNet extends Network { for (int slot : blockMenu.getPreset().getSlotsAccessedByItemTransport((DirtyChestMenu) blockMenu, ItemTransportFlow.WITHDRAW, null)) { ItemStack is = blockMenu.getItemInSlot(slot); - if (is != null && CargoManager.matchesFilter(l.getBlock(), is, -1)) { + if (is != null && CargoUtils.matchesFilter(l.getBlock(), is, -1)) { boolean add = true; - for (StoredItem item : items) { + for (ItemAndInt item : items) { if (SlimefunManager.isItemSimilar(is, item.getItem(), true)) { add = false; item.add(is.getAmount() + stored); @@ -447,7 +446,7 @@ public class CargoNet extends Network { } if (add) { - items.add(new StoredItem(new CustomItem(is, 1), is.getAmount() + stored)); + items.add(new ItemAndInt(new CustomItem(is, 1), is.getAmount() + stored)); } } } @@ -469,7 +468,7 @@ public class CargoNet extends Network { } } - Collections.sort(items, Comparator.comparingInt(item -> -item.getAmount())); + Collections.sort(items, Comparator.comparingInt(item -> -item.getInt())); for (Location l : terminals) { BlockMenu menu = BlockStorage.getInventory(l); @@ -484,15 +483,15 @@ public class CargoNet extends Network { int slot = terminal_slots[i]; if (items.size() > i + (terminal_slots.length * (page - 1))) { - StoredItem item = items.get(i + (terminal_slots.length * (page - 1))); + ItemAndInt item = items.get(i + (terminal_slots.length * (page - 1))); ItemStack stack = item.getItem().clone(); ItemMeta im = stack.getItemMeta(); List lore = new ArrayList<>(); lore.add(""); - lore.add(ChatColors.color("&7Stored Items: &r" + DoubleHandler.getFancyDouble(item.getAmount()))); + lore.add(ChatColors.color("&7Stored Items: &r" + DoubleHandler.getFancyDouble(item.getInt()))); - if (stack.getMaxStackSize() > 1) lore.add(ChatColors.color("&7 stack.getMaxStackSize() ? stack.getMaxStackSize(): item.getAmount()) + ">")); + if (stack.getMaxStackSize() > 1) lore.add(ChatColors.color("&7 stack.getMaxStackSize() ? stack.getMaxStackSize(): item.getInt()) + ">")); else lore.add(ChatColors.color("&7")); lore.add(""); @@ -504,7 +503,7 @@ public class CargoNet extends Network { stack.setItemMeta(im); menu.replaceExistingItem(slot, stack); menu.addMenuClickHandler(slot, (p, sl, is, action) -> { - int amount = item.getAmount() > item.getItem().getMaxStackSize() ? item.getItem().getMaxStackSize() : item.getAmount(); + int amount = item.getInt() > item.getItem().getMaxStackSize() ? item.getItem().getMaxStackSize() : item.getInt(); itemRequests.add(new ItemRequest(l, 44, new CustomItem(item.getItem(), action.isRightClicked() ? amount : 1), ItemTransportFlow.WITHDRAW)); return false; }); @@ -512,7 +511,7 @@ public class CargoNet extends Network { } else { menu.replaceExistingItem(slot, terminal_noitem_item); - menu.addMenuClickHandler(slot, terminal_noitem_handler); + menu.addMenuClickHandler(slot, ChestMenuUtils.getEmptyClickHandler()); } } } @@ -540,17 +539,17 @@ public class CargoNet extends Network { return freq; } - private void handleWithdraw(DirtyChestMenu menu, List items, Location l) { + private void handleWithdraw(DirtyChestMenu menu, List items, Location l) { for (int slot : menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) { filter(menu.getItemInSlot(slot), items, l); } } - private void filter(ItemStack is, List items, Location l) { - if (is != null && CargoManager.matchesFilter(l.getBlock(), is, -1)) { + private void filter(ItemStack is, List items, Location l) { + if (is != null && CargoUtils.matchesFilter(l.getBlock(), is, -1)) { boolean add = true; - for (StoredItem item : items) { + for (ItemAndInt item : items) { if (SlimefunManager.isItemSimilar(is, item.getItem(), true)) { add = false; item.add(is.getAmount()); @@ -558,7 +557,7 @@ public class CargoNet extends Network { } if (add) { - items.add(new StoredItem(new CustomItem(is, 1), is.getAmount())); + items.add(new ItemAndInt(new CustomItem(is, 1), is.getAmount())); } } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/CargoManager.java b/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/CargoUtils.java similarity index 63% rename from src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/CargoManager.java rename to src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/CargoUtils.java index fa0005521..be5b46145 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/CargoManager.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/CargoUtils.java @@ -19,13 +19,12 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.DirtyChestMenu; -public final class CargoManager { +public final class CargoUtils { //Whitelist or blacklist slots - private static final int[] SLOTS = new int[]{19, 20, 21, 28, 29, 30, 37, 38, 39}; + private static final int[] SLOTS = {19, 20, 21, 28, 29, 30, 37, 38, 39}; - private CargoManager() { - } + private CargoUtils() {} public static ItemStack withdraw(Block node, Block target, ItemStack template) { DirtyChestMenu menu = getChestMenu(target); @@ -50,37 +49,44 @@ public final class CargoManager { BlockState state = target.getState(); if (state instanceof InventoryHolder) { - Inventory inv = ((InventoryHolder) state).getInventory(); - int minSlot = 0; - int maxSlot = inv.getContents().length; - - if (inv instanceof FurnaceInventory) { - minSlot = 2; - maxSlot = 3; - } - else if (inv instanceof BrewerInventory) { - maxSlot = 3; - } - for (int slot = minSlot; slot < maxSlot; slot++) { - ItemStack is = inv.getContents()[slot]; - - if (SlimefunManager.isItemSimilar(is, template, true) && matchesFilter(node, is, -1)) { - if (is.getAmount() > template.getAmount()) { - inv.setItem(slot, new CustomItem(is, is.getAmount() - template.getAmount())); - return template; - } - else { - inv.setItem(slot, new CustomItem(is, is.getAmount() - template.getAmount())); - return is.clone(); - } - } - } + return withdrawFromVanillaInventory(node, template, ((InventoryHolder) state).getInventory()); } } + return null; } - public static ItemSlot withdraw(Block node, Block target, int index) { + private static ItemStack withdrawFromVanillaInventory(Block node, ItemStack template, Inventory inv) { + int minSlot = 0; + int maxSlot = inv.getContents().length; + + if (inv instanceof FurnaceInventory) { + minSlot = 2; + maxSlot = 3; + } + else if (inv instanceof BrewerInventory) { + maxSlot = 3; + } + + for (int slot = minSlot; slot < maxSlot; slot++) { + ItemStack is = inv.getContents()[slot]; + + if (SlimefunManager.isItemSimilar(is, template, true) && matchesFilter(node, is, -1)) { + if (is.getAmount() > template.getAmount()) { + inv.setItem(slot, new CustomItem(is, is.getAmount() - template.getAmount())); + return template; + } + else { + inv.setItem(slot, new CustomItem(is, is.getAmount() - template.getAmount())); + return is.clone(); + } + } + } + + return null; + } + + public static ItemAndInt withdraw(Block node, Block target, int index) { DirtyChestMenu menu = getChestMenu(target); if (menu != null) { @@ -89,7 +95,7 @@ public final class CargoManager { if (matchesFilter(node, is, index)) { menu.replaceExistingItem(slot, null); - return new ItemSlot(is.clone(), slot); + return new ItemAndInt(is.clone(), slot); } } } @@ -115,7 +121,7 @@ public final class CargoManager { if (matchesFilter(node, is, index)) { inv.setItem(slot, null); - return new ItemSlot(is.clone(), slot); + return new ItemAndInt(is.clone(), slot); } } } @@ -157,69 +163,73 @@ public final class CargoManager { BlockState state = target.getState(); if (state instanceof InventoryHolder) { - Inventory inv = ((InventoryHolder) state).getInventory(); - - int minSlot = 0; - int maxSlot = inv.getContents().length; - - //Check if it is a normal furnace - if (inv instanceof FurnaceInventory) { - //Check if it is fuel or not - if (stack.getType().isFuel()) { - minSlot = 1; - maxSlot = 2; - } - else { - maxSlot = 1; - } - } - else if (inv instanceof BrewerInventory) { - //Check if it goes in the potion slot, - if (stack.getType() == Material.POTION || stack.getType() == Material.LINGERING_POTION || stack.getType() == Material.SPLASH_POTION) { - maxSlot = 3; - //The blaze powder slot, - } - else if (stack.getType() == Material.BLAZE_POWDER) { - minSlot = 4; - maxSlot = 5; - } - else { - //Or the input - minSlot = 3; - maxSlot = 4; - } - } - - for (int slot = minSlot; slot < maxSlot; slot++) { - ItemStack is = inv.getContents()[slot]; - - if (is == null) { - inv.setItem(slot, stack.clone()); - return null; - } - else if (SlimefunManager.isItemSimilar(new CustomItem(is, 1), new CustomItem(stack, 1), true) && is.getAmount() < is.getType().getMaxStackSize()) { - int amount = is.getAmount() + stack.getAmount(); - - if (amount > is.getType().getMaxStackSize()) { - is.setAmount(is.getType().getMaxStackSize()); - stack.setAmount(amount - is.getType().getMaxStackSize()); - } - else { - is.setAmount(amount); - stack = null; - } - - inv.setItem(slot, is); - return stack; - } - } + return insertIntoVanillaInventory(stack, ((InventoryHolder) state).getInventory()); } } return stack; } - public static DirtyChestMenu getChestMenu(Block block) { + private static ItemStack insertIntoVanillaInventory(ItemStack stack, Inventory inv) { + int minSlot = 0; + int maxSlot = inv.getContents().length; + + //Check if it is a normal furnace + if (inv instanceof FurnaceInventory) { + //Check if it is fuel or not + if (stack.getType().isFuel()) { + minSlot = 1; + maxSlot = 2; + } + else { + maxSlot = 1; + } + } + else if (inv instanceof BrewerInventory) { + //Check if it goes in the potion slot, + if (stack.getType() == Material.POTION || stack.getType() == Material.LINGERING_POTION || stack.getType() == Material.SPLASH_POTION) { + maxSlot = 3; + //The blaze powder slot, + } + else if (stack.getType() == Material.BLAZE_POWDER) { + minSlot = 4; + maxSlot = 5; + } + else { + //Or the input + minSlot = 3; + maxSlot = 4; + } + } + + for (int slot = minSlot; slot < maxSlot; slot++) { + ItemStack is = inv.getContents()[slot]; + + if (is == null) { + inv.setItem(slot, stack.clone()); + return null; + } + else if (SlimefunManager.isItemSimilar(new CustomItem(is, 1), new CustomItem(stack, 1), true) && is.getAmount() < is.getType().getMaxStackSize()) { + int amount = is.getAmount() + stack.getAmount(); + + if (amount > is.getType().getMaxStackSize()) { + is.setAmount(is.getType().getMaxStackSize()); + stack.setAmount(amount - is.getType().getMaxStackSize()); + } + else { + is.setAmount(amount); + stack = null; + } + + inv.setItem(slot, is); + return stack; + } + } + + return stack; + } + + public static DirtyChestMenu getChestMenu(Block block) { if (BlockStorage.hasInventory(block)) { return BlockStorage.getInventory(block); } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ChannelIndex.java b/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ChannelIndex.java deleted file mode 100644 index 1da5125e8..000000000 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ChannelIndex.java +++ /dev/null @@ -1,25 +0,0 @@ -package me.mrCookieSlime.Slimefun.api.item_transport; - -public class ChannelIndex { - - private final int channel; - private int index; - - public ChannelIndex(int channel, int index) { - this.channel = channel; - this.index = index; - } - - public void setIndex(int index) { - this.index = index; - } - - public int getChannel() { - return this.channel; - } - - public int getIndex() { - return this.index; - } - -} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ChestTerminalSorter.java b/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ChestTerminalSorter.java deleted file mode 100644 index e0fdb6270..000000000 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ChestTerminalSorter.java +++ /dev/null @@ -1,12 +0,0 @@ -package me.mrCookieSlime.Slimefun.api.item_transport; - -import java.util.Comparator; - -public class ChestTerminalSorter implements Comparator { - - @Override - public int compare(StoredItem item1, StoredItem item2) { - return item2.getAmount() - item1.getAmount(); - } - -} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/StoredItem.java b/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ItemAndInt.java similarity index 50% rename from src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/StoredItem.java rename to src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ItemAndInt.java index 01b8e940b..baf4c6f77 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/StoredItem.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ItemAndInt.java @@ -2,26 +2,26 @@ package me.mrCookieSlime.Slimefun.api.item_transport; import org.bukkit.inventory.ItemStack; -public class StoredItem { +public class ItemAndInt { private final ItemStack item; - private int amount; + private int number; - public StoredItem(ItemStack item, int amount) { - this.amount = amount; + public ItemAndInt(ItemStack item, int amount) { + this.number = amount; this.item = item; } - public int getAmount() { - return this.amount; + public int getInt() { + return number; } public ItemStack getItem() { - return this.item; + return item; } public void add(int amount) { - this.amount = this.amount + amount; + number += amount; } } diff --git a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ItemSlot.java b/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ItemSlot.java deleted file mode 100644 index 87d3b1fac..000000000 --- a/src/main/java/me/mrCookieSlime/Slimefun/api/item_transport/ItemSlot.java +++ /dev/null @@ -1,23 +0,0 @@ -package me.mrCookieSlime.Slimefun.api.item_transport; - -import org.bukkit.inventory.ItemStack; - -public class ItemSlot { - - private final int slot; - private final ItemStack item; - - public ItemSlot(ItemStack item, int slot) { - this.slot = slot; - this.item = item; - } - - public int getSlot() { - return this.slot; - } - - public ItemStack getItem() { - return this.item; - } - -} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/utils/MachineTier.java b/src/main/java/me/mrCookieSlime/Slimefun/utils/MachineTier.java deleted file mode 100644 index d5340b756..000000000 --- a/src/main/java/me/mrCookieSlime/Slimefun/utils/MachineTier.java +++ /dev/null @@ -1,28 +0,0 @@ -package me.mrCookieSlime.Slimefun.utils; - -@Deprecated -public enum MachineTier { - - BASIC("&eBasic"), - AVERAGE("&6Average"), - MEDIUM("&aMedium"), - GOOD("&2Good"), - ADVANCED("&6Advanced"), - END_GAME("&4End-Game"); - - private final String prefix; - - private MachineTier(String prefix) { - this.prefix = prefix; - } - - @Override - public String toString() { - return prefix; - } - - public String and(MachineType type) { - return this + " " + type; - } - -} diff --git a/src/main/java/me/mrCookieSlime/Slimefun/utils/MachineType.java b/src/main/java/me/mrCookieSlime/Slimefun/utils/MachineType.java deleted file mode 100644 index 7c3cb1200..000000000 --- a/src/main/java/me/mrCookieSlime/Slimefun/utils/MachineType.java +++ /dev/null @@ -1,21 +0,0 @@ -package me.mrCookieSlime.Slimefun.utils; - -@Deprecated -public enum MachineType { - - CAPACITOR("Capacitor"), - GENERATOR("Generator"), - MACHINE("Machine"); - - private final String suffix; - - private MachineType(String suffix) { - this.suffix = suffix; - } - - @Override - public String toString() { - return suffix; - } - -} diff --git a/src/main/resources/languages/messages_en.yml b/src/main/resources/languages/messages_en.yml index e7f0b5601..16b99e954 100644 --- a/src/main/resources/languages/messages_en.yml +++ b/src/main/resources/languages/messages_en.yml @@ -22,10 +22,17 @@ guide: lore: - '&bWhat would you like to search for?' - '&7Type your search term into chat' - + tooltips: open-category: 'Click to open' versions-notice: 'These are very important when reporting bugs!' + wiki: 'View this Item on the official Slimefun Wiki' + + recipes: + machine: 'Recipes made in this Machine' + miner: 'Resources you can obtain with this Miner' + generator: 'Available types of fuel' + gold-pan: 'Resources you can obtain' cheat: no-multiblocks: '&4You cannot cheat in Multiblocks, you have to build them!' @@ -154,7 +161,8 @@ machines: HOLOGRAM_PROJECTOR: enter-text: '&7Please enter your desired Hologram Text into your Chat. &r(Color Codes are supported!)' - + inventory-title: 'Hologram Editor' + ELEVATOR: no-destinations: '&4No destinations found' pick-a-floor: '&3- Pick a floor -' @@ -168,6 +176,11 @@ machines: teleported: '&3Teleported!' cancelled: '&4Teleportation cancelled!' invulnerability: '&b&lYou have been given 30 seconds of Invulnerability!' + + GPS_CONTROL_PANEL: + title: 'GPS - Control Panel' + transmitters: 'Transmitter Overview' + waypoints: 'Waypoint Overview' CARGO_NODES: must-be-placed: '&4Must be placed onto a chest or machine!' @@ -206,8 +219,10 @@ inventory: android: started: '&7Your Android resumed running its script' stopped: '&7Your Android has paused its script' + scripts: already-uploaded: '&4This script has already been uploaded.' + editor: 'Script Editor' instructions: START: '&2Start Script' @@ -280,3 +295,7 @@ languages: uk: 'Ukrainian' ms: 'Malay' 'no': 'Norwegian' + ja: 'Japanese' + fa: 'Persian' + th: 'Thai' + ro: 'Romanian' \ No newline at end of file From 430a27d1649bec432cba5dc85c8be995071eb514 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Thu, 13 Feb 2020 00:36:24 +0000 Subject: [PATCH 5/7] Translate messages_de.yml via GitLocalize --- src/main/resources/languages/messages_de.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/resources/languages/messages_de.yml b/src/main/resources/languages/messages_de.yml index ace436745..0c2af591d 100644 --- a/src/main/resources/languages/messages_de.yml +++ b/src/main/resources/languages/messages_de.yml @@ -38,6 +38,7 @@ android: uploaded: - "&bLade dein Skript hoch..." - "&aDein Skript wurde erfolgreich hochgeladen!" + editor: Skripteditor started: "&7Dein Android hat sein Skript fortgesetzt" stopped: "&7Dein Android hat sein Skript pausiert" anvil: @@ -115,11 +116,17 @@ guide: languages: Wähle deine bevorzugte Sprache main: Slimefun-Handbuch settings: Einstellungen & Infos - wiki: Slimefun4-Wiki source: Quellcode + wiki: Slimefun4-Wiki tooltips: open-category: Klicke zum Öffnen versions-notice: Dies ist sehr wichtig bei Fehlermeldungen! + wiki: Besuche das offizielle Slimefun-Wiki + recipes: + machine: Rezepte dieser Maschine + miner: Ressourcen, die mit dieser Maschine gewonnen werden können + generator: Mögliche Treibstoffquellen + gold-pan: Ressourcen, die hiermit gewonnen werden können inventory: no-access: "&4Du kannst nicht auf diesen Block zugreifen" languages: @@ -152,6 +159,10 @@ languages: vi: Vietnamesisch zh-CN: Chinesisch (China) zh-TW: Chinesisch (Taiwan) + ja: Japanisch + fa: Persisch + th: Thailändisch + ro: Rumänisch machines: ANCIENT_ALTAR: not-enough-pedestals: "&4Es fehlen einige Sockel des Altars &c(%pedestals% / 8)" @@ -175,6 +186,7 @@ machines: HOLOGRAM_PROJECTOR: enter-text: "&7Bitte gebe ins Chatfenser einen Text für dieses Hologram ein. &r(Farbcodes werden unterstützt!)" + inventory-title: Hologrammeditor ignition-chamber-no-flint: "&cAlle Feuerzeuge wurden aufgebraucht!" in-use: "&cDiese Maschine wird derzeit von einem anderen Spieler verwendet." pattern-not-found: "&eEs tut mir leid, aber ich konnte kein passendes Rezept finden." @@ -187,6 +199,10 @@ machines: nicht, probier ein anderes Item aus." wrong-item: "&eEs tut mir leid, aber ich erkenne das Item in deiner Hand nicht, probier ein anderes Item aus." + GPS_CONTROL_PANEL: + title: GPS - Kontrolltafel + transmitters: Satelliten-Übersicht + waypoints: Wegpunkte-Übersicht messages: cannot-place: "&cDu kannst hier keine Blöcke platzieren!" diet-cookie: "&eDu beginnst dich sehr leicht zu fühlen..." From 1d826a8b1d4fb463e40690123a99b99e819c1956 Mon Sep 17 00:00:00 2001 From: Pierre Date: Thu, 13 Feb 2020 00:41:19 +0000 Subject: [PATCH 6/7] Translate messages_fr.yml via GitLocalize --- src/main/resources/languages/messages_fr.yml | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/resources/languages/messages_fr.yml b/src/main/resources/languages/messages_fr.yml index bc686c61e..ba6376fdd 100644 --- a/src/main/resources/languages/messages_fr.yml +++ b/src/main/resources/languages/messages_fr.yml @@ -76,6 +76,10 @@ gps: new: "&eEntrez un nom pour votre nouveau waypoint dans le chat. &7(Les codes couleur sont acceptés !)" guide: + back: + guide: Revenir au Guide Slimefun + settings: Revenir au menu des Options + title: Retour cheat: no-multiblocks: "&4Vous ne pouvez pas vous donnez les multiblocs, vous devez les construire!" @@ -112,48 +116,44 @@ guide: languages: Choisissez votre langue main: Guide Slimefun settings: Paramètres et informations - wiki: Wiki Slimefun4 source: Code Source + wiki: Wiki Slimefun4 tooltips: open-category: Cliquez pour ouvrir versions-notice: Ces informations sont très importantes lorsque vous rapportez des bugs ! - back: - title: Retour - guide: Revenir au Guide Slimefun - settings: Revenir au menu des Options inventory: no-access: "&4Vous n'avez pas la permission d'accéder à ce bloc" languages: + af: Afrikaans + ar: Arabe cs: Tchèque + da: Danois de: Allemand default: Paramètre par défaut el: Grec en: Anglais es: Espagnol + fi: Finnois fr: Français he: Hébreu hu: Hongrois id: Indonésien it: Italien lv: Letton + ms: Malais nl: Néerlandais + 'no': Norvégien pl: Polonais pt: Portugais (Portugal) pt-BR: Portugais (Brésil) ru: Russe sk: Slovaque sv: Suédois + uk: Ukrainien vi: Vietnamien zh-CN: Chinois (Chine) zh-TW: Chinois (Taiwan) - ar: Arabe - af: Afrikaans - da: Danois - fi: Finnois - uk: Ukrainien - ms: Malais - 'no': Norvégien machines: ANCIENT_ALTAR: not-enough-pedestals: "&4L'autel n'est pas entouré du bon nombre de piédestaux From 274db4a558d2c07789ffd54d667bbac988a61126 Mon Sep 17 00:00:00 2001 From: Edwin Kerforne Date: Thu, 13 Feb 2020 00:41:20 +0000 Subject: [PATCH 7/7] Translate messages_fr.yml via GitLocalize --- src/main/resources/languages/messages_fr.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/resources/languages/messages_fr.yml b/src/main/resources/languages/messages_fr.yml index ba6376fdd..9b3a3b816 100644 --- a/src/main/resources/languages/messages_fr.yml +++ b/src/main/resources/languages/messages_fr.yml @@ -38,6 +38,7 @@ android: uploaded: - "&bUpload du script..." - "&aVotre script a bien été upload !" + editor: Éditeur de script started: "&7Votre androïde a repris l'exécution de son script" stopped: "&7Votre androïde a mis en pause l'exécution de son script" anvil: @@ -122,6 +123,12 @@ guide: open-category: Cliquez pour ouvrir versions-notice: Ces informations sont très importantes lorsque vous rapportez des bugs ! + wiki: Voir cet objet sur le wiki officiel de Slimefun + recipes: + machine: Recettes fabriquées dans cette machine + miner: Ressources pouvant être obtenues avec ce mineur + generator: Types de carburant disponibles + gold-pan: Ressources pouvant être obtenues inventory: no-access: "&4Vous n'avez pas la permission d'accéder à ce bloc" languages: @@ -154,6 +161,10 @@ languages: vi: Vietnamien zh-CN: Chinois (Chine) zh-TW: Chinois (Taiwan) + ja: Japonais + fa: Persan + th: Thaï + ro: Roumain machines: ANCIENT_ALTAR: not-enough-pedestals: "&4L'autel n'est pas entouré du bon nombre de piédestaux @@ -178,6 +189,7 @@ machines: HOLOGRAM_PROJECTOR: enter-text: "&7Veuillez saisir le texte voulu pour votre hologramme dans le chat. &r(Les codes couleur sont acceptés !)" + inventory-title: Éditeur d'hologramme ignition-chamber-no-flint: "&cLa chambre d'allumage n'a pas de briquet." in-use: "&cL'inventaire de ce bloc est déjà ouvert par un autre joueur." pattern-not-found: "&eDésolé, je ne reconnais pas cette recette. Veuillez disposer @@ -191,6 +203,10 @@ machines: y placer quelque chose que je connais." wrong-item: "&eDésolé, je ne reconnais pas l'objet avec lequel vous avez cliqué. Consultez le guide pour savoir quels objets vous pouvez utiliser." + GPS_CONTROL_PANEL: + title: Panneau de configuration GPS + transmitters: Vue d'ensemble de l'émetteur + waypoints: Vue d'ensemble des waypoints messages: cannot-place: "&cVous ne pouvez pas placer ce bloc là !" diet-cookie: "&eVous vous sentez léger comme une plume..."